在Objective-C中,给一个类扩展一个其它方法,有两种实现方式:类别和继承。
1.继承Inherit
这个是面向对象语言都有的一个特性,子类会继承父类的方法和属性。
对于以下情况,无法使用类别,必须使用继承。
示例代码:
// ViewControllerEx.h @interface ViewControllerEx : UIViewController //自己需要添加的方法 @end // ViewControllerEx.m @implementation ViewControllerEx // 方法的实现 @end
2.类别category
这是Objective-C语言的一个特性,可以在不改变类名和原来类的实现的前提下,实现对类的方法扩展。Category不能用于向被扩展类添加实例变量。
示例代码:
// 这里有一个约定俗成的规定,类别文件命名时,是原类名+扩展标识名 // NSString+ex.h @interface NSString (ex) // 扩展的类回别方法 @end // NSString+ex.m @implementation NSString (ex) // 方法的实现 @end
3、以下两种方式最后使用类别。
原文:http://www.cnblogs.com/ziyeSky/p/4140532.html