自定义视图和属性'vs'实例变量

时间:2013-10-23 12:11:52

标签: ios uiview properties instance-variables

我想检查一下我是不是在创建自定义视图时出现任何问题,这是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;
}

1 个答案:

答案 0 :(得分:1)

属性不仅是公共的,您也可以拥有私有属性。他们的用法有点个人偏好。就个人而言,我不使用任何普通的实例变量,我使用属性的一切。我知道其他人不会以同样的方式工作。

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

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

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