美文网首页
OC语言的类别(类目)

OC语言的类别(类目)

作者: peal | 来源:发表于2016-02-23 19:54 被阅读610次

    一、类别的基本知识

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

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

    3.与继承的区别

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

    4.创建一个类别

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


    屏幕快照 2016-02-22 20.28.46.png

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


    屏幕快照 2016-02-22 20.29.00.png

    二、编程小例

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

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

    类别中方法的声明

    #import <Foundation/Foundation.h>
    
    @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语言的类别(类目)

          本文链接:https://www.haomeiwen.com/subject/yovbkttx.html