1

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

@property (nonatomic) UIButton *myButton;

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

4

1 回答 1

2

由于在任何规模的非 ARC 项目中,准确查看保留、分配或复制的内容非常重要,因此我真的建议不要使用该默认值。

当您查看具有多个可能具有许多其他属性(例如只读,原子和非原子)的属性的类时,很难阅读。吸气剂=等

尽管将#define 放在一个恒定的标头中并不完美,例如

#define ASSIGN nonatomic, assign
#define RETAIN nonatomic, retain

对于您最常见的用法,可以使您的属性定义更加明确,这样当您最终赶上编写您的 dealloc 方法时,它可以非常快速地检查您需要释放的内容。

我的大多数属性定义看起来像

@property (ASSIGN) Foo* foo; 

或者

@property (RETAIN) Foo* foo;

这就是我所做的,它可以降低属性定义的噪音,并使代码在故障排除或完善手动内存管理应用程序时更容易阅读。

于 2012-10-18T22:57:52.903 回答