在OC中,Description方法包括类方法和对象方法,而我们通常所重写的description方法一般是重写对象方法。而description方法是写在NSObject中的,其他类都是NSObject的子类,所以可以从他那里继承得到的,于是我点进去查看了NSObject的描述文件,结果只在描述文件中看到了description的类方法:
于是我就上面仔细寻找,发现有一个NSObject的协议,于是点进协议一看,发现了这个东西:
这是在NSObject 协议文件里面的 一个@property 格式的声明,在协议中用@property修饰的对象,不像在@interface里面那样会自动生成属性和set 和get 方法的声明和实现,只会生成这个对象的set和get声明,而且默认是对象方法,这里@property的修饰符是readonly 因此只生成 description的get方法,也就是我们常改写的description的对象方法,这就是为什么我们在NSObject里面找不到 description的对象方法的原因。
网友评论