0

我想检查一下我创建自定义视图的方式没有给自己造成任何问题,这是 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;
}
4

1 回答 1

1

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

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

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

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

于 2013-10-23T12:28:27.720 回答