非ARC项目中的默认属性声明

时间:2012-10-18 22:14:19

标签: iphone objective-c ios ipad

如果我只是执行以下操作,默认属性值是什么:

@property (nonatomic) UIButton *myButton;

在非ARC项目中。这是保留还是分配?

1 个答案:

答案 0 :(得分:2)

因为在任何规模的非ARC项目中,看到确切保留,分配或复制的内容非常重要,我建议不要使用该默认值。

当您查看具有多个属性的类时很难阅读,这些属性可能具有许多其他属性,例如readonly,atomic和non atomic。 getter = etc

虽然将#define放在像

这样的常量标题中并不完美
#define ASSIGN nonatomic, assign
#define RETAIN nonatomic, retain

对于您最常见的用法,可以使您的属性定义更加明确 所以,当你最终赶上编写dealloc方法时,可以快速检查一下你需要发布什么。

我的大部分属性定义都是

@property (ASSIGN) Foo* foo; 

@property (RETAIN) Foo* foo;

这就是我做的事情,它可以减少属性定义上的噪音,并在排除或完善手动内存管理应用程序时使代码读取更容易。