Category
优点:
1.增加方法不需要继承。
2.类的实现分散化。
3.前向引用。在其他地方使用类(或者Category)的私有实现时(会报错,编译不能通过),只需要在文件中添加一个声明了私有方法的Category,该方法只需要声明不需要实现,Runtime会找到实现。
4.私有委托。(不知道咋回事)
缺点:
1.不能添加成员变量。可通过关联实现(setAssociatedObject&getAssociatedObject)。
2.名称冲突,类别方法会覆盖类方法。
3.编译器不建议覆盖父类init方法。
Extension:
必须放在.m文件中
一般括号中没有名称,如:
@interface MyClass ()
@property (retain, readwrite) float value;
@end