如果我只是执行以下操作,默认属性值是什么:
@property (nonatomic) UIButton *myButton;
在非ARC项目中。这是保留还是分配?
答案 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;
这就是我做的事情,它可以减少属性定义上的噪音,并在排除或完善手动内存管理应用程序时使代码读取更容易。