现在的位置: 首页 > 综合 > 正文

类别@interface Class1 (Category1)

2013年09月07日 ⁄ 综合 ⁄ 共 528字 ⁄ 字号 评论关闭
类别是为现有的类添加新方法的方式。利用object-c的动态运行时分配机制,可以为现有的类添加新的方法,这些新方法的Objective-C术语称为类别。
申明类别:
@interface NSString (NumberConvenience)
- (NSNumber *) lengthAsNumber;
@end
实现:
@implementation NSString (NumberConvenience)
- (NSNumber *) lengthAsNumber
{
unsigned int length = [self length];
return [NSNumber numberWithUnsignedInt : length];
}
@end
类别的局限性:无法向类中添加实例变量;名称冲突,即类别中的方法与现有的方法重名时,类别的方法将取代初始方法,从而无法再使用初始方法。
类别的作用: 
1、将类的实现分散到多个不同文件或多个框架中;
    如 @interface NSWindow(NSDrag)
        @interface NSWindow(NSKeyboardUI)
2、创建对私有方法的前项引用;
3、向对象添加非正式协议。
    创建NSObject的类别称为”创建一个非正式协议“。

抱歉!评论已关闭.