@property可以设置为strong,weak,assign,copy ... like
@property (copy, nonatomic) NSString *string;
@property (strong ,nonatomic) CustomClass *object;
@property (weak,nonatomic) id <CustomDelegate>delegate;
但是,如果
@property id <CustomDelegate>delegate; weak?strong?
@property (copy, nonatomic) NSString *string; strong?
如果(弱,非原子)缩写。 id的默认值是多少?还有其他吗?
答案 0 :(得分:3)
属性默认为原子
这意味着合成访问器确保始终通过getter方法完全检索值或通过setter方法完全设置,即使从不同的线程同时调用访问器也是如此。
由于原子访问器方法的内部实现和同步是私有的,因此无法将合成访问器与您自己实现的访问器方法相结合。例如,如果您尝试为原子,readwrite属性提供自定义setter,但让编译器合成getter,则会收到编译器警告。
由于
答案 1 :(得分:2)
id
是对未知类的一些随机 Objective-C对象的引用,因此它的默认属性为:
@property (atomic, readwrite, strong) id value;
注意:代表99.999%的时间应为weak
。