warning: default property attribute ‘assign‘ not
appropriate for non-GC object [-Wobjc-property-no-attribute]
[Note:]
- @property NSString *name,这样的申明会出现如下的warning:
“No ‘assign‘, ‘retain‘, or ‘copy‘ attribute is specified - ‘assign‘ is assumed”
“Default property attribute ‘assign‘ not appropriate for non-gc object”
这是因为在ARC支持的编译环境中,没有明确指出应该是assign还是retain或者是copy,缺省的是assign。而assign一般用于Scalar type(标量数据类型的描述,比如基本数据类型int, bool等),aggregate type(比如数组,结构体,类等)的描述应该用strong,让name从属的对象来持有他。
- @property (nonatomic, readonly) NSObject *object, 这样申明的readonly的属性,如果@synthesize会提示如下错误:
“ARC forbids synthesizing a property of an Objective-C object with unspecified ownership or storage attribute”
如果定义了ARC有效,那么必须要有所有者属性的定义;所以我们应该加上strong描述,就OK了。
时间: 2024-08-25 13:13:33