如果我只执行以下操作,默认属性值是什么:
@property (nonatomic) UIButton *myButton;
在非 ARC 项目中。这是保留还是分配?
如果我只执行以下操作,默认属性值是什么:
@property (nonatomic) UIButton *myButton;
在非 ARC 项目中。这是保留还是分配?
由于在任何规模的非 ARC 项目中,准确查看保留、分配或复制的内容非常重要,因此我真的建议不要使用该默认值。
当您查看具有多个可能具有许多其他属性(例如只读,原子和非原子)的属性的类时,很难阅读。吸气剂=等
尽管将#define 放在一个恒定的标头中并不完美,例如
#define ASSIGN nonatomic, assign
#define RETAIN nonatomic, retain
对于您最常见的用法,可以使您的属性定义更加明确,这样当您最终赶上编写您的 dealloc 方法时,它可以非常快速地检查您需要释放的内容。
我的大多数属性定义看起来像
@property (ASSIGN) Foo* foo;
或者
@property (RETAIN) Foo* foo;
这就是我所做的,它可以降低属性定义的噪音,并使代码在故障排除或完善手动内存管理应用程序时更容易阅读。