类别:category
类别:为现有的类添加新方法的方式。
创建(.h文件):
@interface NSString (NumberConvenience)
- (NSNumber *) lengthAsNumber; //需要添加的方法
@end //NumberConvenience
实现(.m文件):
@implementation NSString (NumberConvenience)
- (NSNumber *) lengthAsNumber
{
//函数体
}
@end //NumberConvenience
局限性:
1 无法添加实例变量;
2 名称冲突。
作用:
1 利用类别进行分散实现;把一个类实现为多个不同的类别,在类别(逻辑分组)中将方法组织起来。
2 使用类别创建向前引用;
3 非正式协议&委托&类别:被发送给委托对象的方法可以声明为一个NSObject的类别。某个类让委托对象执行该类自己的某些操作。
非正式协议:创建一个NSObect的类别称为”创建一个非正式协议“;
委托:一种对象,另一个类的对象会要求委托对象执行它的某些操作。
如何知道委托对象能否处理发送给他的响应消息?
首先检查对象,询问能否响应该选择器,如果该对象能够响应该选择器,则给它发送消息。
@selector(// 函数方法名)