• IOS分类(Category)


    分类(Category):拓展原有类的方法,而不影响原有类的子类,分类中不能创建成员变量

    分类的使用:

    1.创建分类:

     如图点击(File)选择(New)->(File).. 或者使用快捷键command+N,进入上面的界面,选择(Objective-C File)图标,点击(Next)按钮,进入以下界面。

    进入此界面我们需要注意(File Type) 以及(Class)下拉选项,我们的目的很明确,我们要创建分类,所以(File Type)选择"Category",Class选项的意思是,我们要为那个类进行拓展分类,比如我打算给NSString类拓展一些方法,这里我就选择NSString类,File文件名这个根据自己的实际情况填写,点击(Next)按钮,进入下个界面选择(Create)按钮完成分类的创建。

    分类创建完之后的命名规则,(扩展的类名+分类的名称)。

    2.分类我们已经创建成功,接着我们在分类中编写我们需要扩展的方法,这里方法的创建其实和其他类的创建是一样的。

    首先我们在分类中创建我们所需要的方法:

    #import <Foundation/Foundation.h>
    
    @interface NSString (CFStringWithName)
    // 接头中定义一个方法
    + (NSString *)stringWithReplace:(NSString *)charset;
    
    @end
    
    #import "NSString+CFStringWithName.h"
    
    @implementation NSString (CFStringWithName)
    
    // 方法很简单,如果想过滤一些关键字,就可以通过NSString类中的分类stringWithReplace方法完成 + (NSString *)stringWithReplace:(NSMutableString *)charset {   

      // 需要过滤的子都存放在数组中 NSMutableArray *charArray = [NSMutableArray arrayWithObjects:@"百度",@"淘宝",@"腾讯", nil]; NSString *newValue = charset;
      // 通过for循环取出数组中需要过滤的关键字,进行替换。 for (NSString *str in charArray) { newValue = [newValue stringByReplacingOccurrencesOfString:str withString:@"**" ]; }
      // 返回过滤之后的语句 return newValue; } @end

    /**
    *main 程序的入口
    **/ // 如果想使用分类,即必须导入分类的头文件。 #import "NSString+CFStringWithName.h" int main(int argc, const char * argv[]) { @autoreleasepool {   // 通过NSString的category过滤字符中特殊字符。 NSString *str = [NSString stringWithReplace:@"今天所讲的淘宝是一家上市公司,百度是一家搜索公司。"]; NSLog(@"%@",str); } return 0; }

     总结:分类用起来还是蛮爽快的,不破坏子类而且能扩展更多的好的方法。

  • 相关阅读:
    LOJ#10106. 「一本通 3.7 例 2」单词游戏
    小木棍(爆搜减枝)
    倍增求lca(模板)
    2018年第九届蓝桥杯C/C++A组省赛(最后一题)
    LOJ#10172. 「一本通 5.4 练习 1」涂抹果酱
    【[APIO/CTSC2007]动物园】状压DP
    c++滚动数组
    状态压缩入门(附经典题目和题解)
    小 M 的算式(dfs)
    P与NP问题详解
  • 原文地址:https://www.cnblogs.com/daojiao/p/4769990.html
Copyright © 2020-2023  润新知