iOS中@property的默认值是什么?

ane*_*yzm 9 properties ios

iOS中@property的默认值是什么?

例如,如果我宣布@property NSString*摄影师;

是默认值(assign)或(retain)还是其他什么?

(原子,非原子)?

我无法从文档中找到此信息.谢谢

Jas*_*ien 15

我相信默认情况是(atomic, assign),你不应该把它们留空.

默认值可能随时更改,您正在编写依赖于属性定义的代码.

例如,如果您依赖于默认值assign并且retain将来由于某种原因而更改,那么您的所有代码都将泄漏.

相反,如果默认值是retain并且您依赖于它并且它更改为assign,那么当您不可避免地释放对象时,您的代码将崩溃.

不管它们是什么,都不要依赖任何默认值.

明确定义属性的属性.

  • 注意:ARC的默认值已更改为"strong".见[here](http://stackoverflow.com/questions/9773604/property-definitions-with-arc-is-strong-default-now). (5认同)
  • 正是我在回答中所说的:默认值可能会改变.不要依赖它们.请明确点. (2认同)