Objective-C category

类别: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(// 函数方法名)