【问题标题】:Custom View and Properties 'v' Instance Varioables自定义视图和属性“vs”实例变量
【发布时间】:2013-11-01 17:00:11
【问题描述】:

我想检查一下我创建自定义视图的方式没有给自己带来任何问题,它是 UIVIEW 的子类,我正在添加 UISlider 作为子视图。

我的理解是属性是公共对象,并使用@roperty 在 .h 中定义,实例变量等在 .m 文件中定义。基于这个简单的逻辑是我定义 UISlider 正确/良好的方式,它工作并且感觉正确,但这会导致任何内存问题,它是正确的做事方式吗?我在 .h 文件中没有定义任何内容,在 .m 文件中没有定义以下内容?

#import "myWidgetView.h"

@implementation myWidgetView {
    UISlider        *eraseSlider;
}


- (id)initWithCoder:(NSCoder *)aDecoder {

    if (self = [super initWithCoder:aDecoder])
    {
        eraseSlider = [[UISlider alloc] init];
        [self addSubview:eraseSlider];
    }
    return self;
}

【问题讨论】:

    标签: ios uiview properties instance-variables


    【解决方案1】:

    属性不仅是公开的,您也可以拥有私有的。它们的用法有点个人喜好。就个人而言,我不使用任何普通的实例变量,我对所有内容都使用属性。我知道其他人的工作方式不同。

    实例变量不仅是私有的。公共/私有由 .h / .m 文件中的内容控制。属性和实例变量都可以在两者中定义。

    属性的好处是它们描述了您在内存和线程管理以及访问控制方面的意图。普通的实例变量什么也没告诉你。属性还会根据您声明的意图生成访问器方法。

    你所拥有的(作为一个非常小的例子)很好。只需了解您正在使用的每个构造所提供的功能,然后决定您希望如何构建您的类。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-15
      • 2016-03-14
      • 2011-09-07
      • 1970-01-01
      • 2010-10-17
      相关资源
      最近更新 更多