您的位置:首页 > 移动开发 > Objective-C

Object-c基础编程学习笔记-分类

2014-08-31 20:26 176 查看
1、声明

@interface NSString (NumberConvenice)
- (NSNumber *) lengthAsNumber;
@end


我们可以看出,这个声明有两个特点

首先,是位于类名后面有一个圆括号,表明类别名称。需要保证该类别名称的唯一性

其次,你不仅可以指定添加分类的名称,而且还可以列出添加的方法。

2、实现

@implemation NSString (NumberConvenice)
- (NSNumber *) lengthAsNumber
{
    unsigned int length = [self length];
    return ([NSNumber numberWithUnsignedInt:length]);
}
@end


与声明相似,实现也有类名和分类名以及新方法的正文部分

3、类别的局限性

1)无法向类中添加新的实例变量

2)如果分类中定义的方法与原有类的冲突,那么,原有类的将被覆盖。

4、分类的意义

如果想将大型的单个类的实现分散到不同的类别中去,那分类是你的最好选择

这里引用了一段话,来说明分类的好处

1、方便程序员理解程序框架、查看和了解方法所处在的位置

2、便于扩展现有类的方法,不需要访问类的源代码,也无需创建子类

3、和一般的接口不同,不必实现分类中的所有方法

这里,第三条说明分类相当于一个非正式协议

而定义一个空分类,可以变相的实现私有方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: