【Object-C】类别与扩展Category
Object-C 的动态特征允许使用类别为现有的类添加新方法,并且不需要创建子类,不需要访问原有类的源代码。
通过使用类别,可以动态的为现有的类添加新方法,而且可以将类定义模块化的分布到多个相关文件中。
point:
1、定义类名必须是该项目中没有的类,而定义类别时使用的类名必须是已有的类
2、定义类别时必须使用()来包含类别名
3、类别中通常只定义类方法和实例方法,不能添加实例变量(可以通过扩展extension添加)
4、不要重载另外的方法,导致原方法不可用
5、根据需要可以有多个分类,分类会影响子类
6、通过类别为指定类添加新的方法后,这个新的方法能够影响指定类的子类,子类
也可以继承到这个新的方法。
7、使用类别来调用私有方法
8、使用类别来实现非正式协议
9、可以利用类别对类进行模块化设计
@interface 已有类 (分类名)
-实例方法
+类方法
@end
扩展
@interface 已有类 ()
{
实例变量;
}
-类方法;
+实例方法;
@end