Objective-C属性 – 类别中强弱弱的声明

Objective-C运行时如何处理在类中定义为弱的属性,但类中的私有类定义与其相同的名称和类型的属性

在类的上下文中运行的代码是否使用原始(弱)修饰符,还是使用类别定义的修饰符(强)?

例如:

Name.m

@property (weak,nonatomic) Nsstring *name;

NameTests.m

@interface Name (Test)
@property (strong,nonatomic) Nsstring *name;
@end

解决方法

属性声明中,弱只适用于合成的setter方法(如果有的话)和合成实例变量(如果有的话).如果这两者都不合成,则弱者无效.

如果setter和instance变量是合成的,那么问题是:哪个属性声明是编译器用来合成setter和instance变量?

编译器将永远不会合成在命名类别中声明的属性.所以在你的例子中,name是一个弱的属性.

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...