OC语言的类别(类目)

一、类别的基本知识

1.概念:Category 类别是OC语言特有的,最大程度体现OC语言的动态性。在很多的情况下,往往是给系统自带的类添加分类,如NSString,因为有的时候,系统类可能并不能满足我们的要求。
2.作用:

(1)为原有类扩展方法。
(2)分散类的实现
(3)私有API

3.与继承的区别

继承是重量级的,继承父类所有的方法和属性,是创建一个新类,改变了原有类的结构。类别是轻量级的,是对原有类的方法的扩充,不改变原有类的内容。

4.创建一个类别

iOS——》Source——》Objective-C File


OC语言的类别(类目)_第1张图片
屏幕快照 2016-02-22 20.28.46.png

选择Class 原来的类 File Type Category 填写File的名字


OC语言的类别(类目)_第2张图片
屏幕快照 2016-02-22 20.29.00.png

二、编程小例

给NSString类增加一个两个类方法

1.获取根目录路径
2.获取Documents文件路径

类别中方法的声明

#import 

@interface NSString (Addition)
//获取根目录路径
+(NSString *)getHomePath;
//获取Documents文件路径
+(NSString *)getDocumentsPath;

@end

类别中方法的实现

#import "NSString+Addtion.h"

@implementation NSString (Addition)
//实现获取根目录方法
+(NSString *)getHomePath{

    return NSHomeDirectory();

}
//实现获取Documents文件路径方法
+(NSString *)getDocumentsPath{

// 给字符串追加上一个字符串
    
    return [NSHomeDirectory()stringByAppendingString:@"/Documents"];

}

@end

类别在ios的模块化开发时特别有用,大神们也写了不少值得膜拜的类别。Categories是给你得不到源码的classes增加功能的一种方法。这个页面收集一些相关的Category,并且持续更新,你可以订阅关注。作者是Fille Åström,是@ IMGNRY的联合创始人和开发者。

链接:http://www.cocoachina.com/ios/20140212/7808.html

你可能感兴趣的:(OC语言的类别(类目))