在运行时,类别中添加的方法和原类中的方法没有区别。
使用类别必须先导入类别所在的头文件。
类别不适合声明额外的属性。
在类别中使用@property声明属性是有效的,关于这一点我做了实验,发现还真的是可以的。
但是你无法声明一个实例变量,如下图所示:
连编译都编译不过,就更没法用了。
在类别中给方法命名要注意,千万不能和原类,其他类别中的方法名称重叠,因为这会引起未定义行为。即便是Cocoa和CocoaTouch类也不例外。
但是对于系统框架,你要添加了方法,万一系统版本更新以后增加了你增加的这个方法,那么系统增加的这个方法和你增加的这个方法恰好同名了,于是就冲突了,结果导致了未定义行为。
解决的方法就是增加前缀。