在类的上下文中运行的代码是否使用原始(弱)修饰符,还是使用类别定义的修饰符(强)?
例如:
Name.m
@property (weak,nonatomic) NSString *name;
NameTests.m
@interface Name (Test) @property (strong,nonatomic) NSString *name; @end
如果setter和instance变量是合成的,那么问题是:哪个属性声明是编译器用来合成setter和instance变量?
编译器将永远不会合成在命名类别中声明的属性.所以在你的例子中,name是一个弱的属性.