0
我有一个在我的UIViewController中使用的NSArray对象。我可以声明它是一个ivar或作为一个财产。这两种方法有什么优势(考虑到我正在使用ARC)?ARC:成员变量和属性之间有什么区别?
选项1:
@interface MyViewController {
NSArray *_myArray;
}
@end
选项2:
@interface MyViewController
@property (strong, nonatomic) NSArray *myArray;
@end
我的问题是专门为私人数据。感谢您的解释。 – melsam 2012-08-02 23:12:05
就ARC而言,属性和iVar在大多数情况下都会消除它们之间的差异。以前,您必须确保将变量设置为属性,因为它们存在未被正确保留的风险。现在,在ARC中, – 2012-08-02 23:12:09
我从来没有听说过没有与它有关的ivar的属性,使用@dynamic仅仅意味着访问者将在代码的稍后某处提供,所以编译器不必为你找到它们。除非你的意思是让这些访问器执行其他不向ivars释放的东西,在这种情况下,我认为它会破坏目的。 – Pochi 2012-08-02 23:16:32