利用类别把方法添加到类中

在运行时,类别中添加的方法和原类中的方法没有区别。
使用类别必须先导入类别所在的头文件。

类别不适合声明额外的属性。
在类别中使用@property声明属性是有效的,关于这一点我做了实验,发现还真的是可以的。


利用类别把方法添加到类中_第1张图片

但是你无法声明一个实例变量,如下图所示:


利用类别把方法添加到类中_第2张图片

连编译都编译不过,就更没法用了。

在类别中给方法命名要注意,千万不能和原类,其他类别中的方法名称重叠,因为这会引起未定义行为。即便是Cocoa和CocoaTouch类也不例外。
但是对于系统框架,你要添加了方法,万一系统版本更新以后增加了你增加的这个方法,那么系统增加的这个方法和你增加的这个方法恰好同名了,于是就冲突了,结果导致了未定义行为。
解决的方法就是增加前缀。

你可能感兴趣的:(利用类别把方法添加到类中)