分类(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;
}

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

IOS分类(Category)的更多相关文章

  1. iOS分类Category探索

    什么是Category? Category是Objective-C 2.0之后添加的语言特性,Category的主要作用是为已经存在的类添加方法,一般称为分类,文件名格式是"NSObject ...

  2. iOS分类(category),类扩展(extension)—史上最全攻略

    背景: 在大型项目,企业级开发中多人同时维护同一个类,此时程序员A因为某项需求只想给当前类currentClass添加一个方法newMethod,那该怎么办呢? 最简单粗暴的方式是把newMethod ...

  3. ios 分类(Category)

      今天研究了类别,都是网上找的资料,类别的作用 类别主要有3个作用:       (1)将类的实现分散到多个不同文件或多个不同框架中.       (2)创建对私有方法的前向引用.       (3 ...

  4. 关于ios object-c 类别-分类 category 的静态方法与私有变量,协议 protocol

    关于ios object-c 类别-分类 category 的静态方法与私有变量,协议 protocol 2014-02-18 19:57 315人阅读 评论(0) 收藏 举报 1.category, ...

  5. iOS之分类(category)

    1.分类(category)的作用 1.1作用:可以在不修改原来类的基础上,为一个类扩展方法.1.2最主要的用法:给系统自带的类扩展方法. 2.分类中能写点啥? 2.1分类中只能添加“方法”,不能增加 ...

  6. iOS中 分类(category)与扩展(Extension)的区别?

    1.分类(category)的作用 (1).作用:可以在不修改原来类的基础上,为一个类扩展方法.(2).最主要的用法:给系统自带的类扩展方法. 2.分类中能写点啥? (1).分类中只能添加“方法”,不 ...

  7. 从C#到Objective-C,循序渐进学习苹果开发(3)--分类(category)和协议Protocal的理解

    本随笔系列主要介绍从一个Windows平台从事C#开发到Mac平台苹果开发的一系列感想和体验历程,本系列文章是在起步阶段逐步积累的,希望带给大家更好,更真实的转换历程体验.本文继续上一篇随笔<从 ...

  8. iOS类别(Category)

    iOS类别(Category)与扩展(Extension) 苹果的官方文档 Category在iOS开发中使用非常频繁.尤其是在为系统类进行拓展的时候,我们可以不用继承系统类,直接给系统类添加方法,最 ...

  9. iOS分类底层实现原理小记

    摘要:iOS分类底层是怎么实现的?本文将分如下四个模块进行探究分类的结构体编译时的分类分类的加载总结本文使用的runtime源码版本是objc4-680文中类与分类代码如下//类@interfaceP ...

  10. 分类(Category)的本质 及其与类扩展(Extension) /继承(Inherit)的区别

    1.分类的概念 分类是为了扩展系统类的方法而产生的一种方式,其作用就是在不修改原有类的基础上,为一个类扩展方法,最主要的是可以给系统类扩展我们自己定义的方法. 如何创建一个分类?↓↓ ()Cmd+N, ...

随机推荐

  1. JBPM学习(二):ProcessEngine与Service API

    1.获取processEngine的方法: a) 方法一 private ProcessEngine processEngine = new Configuration().setResource(& ...

  2. 删除mysql服务

    当我们卸载完MySQL后重新装MySQL提示 The service already exists! 是因为服务名称还残留在系统里 打开cmd 输入下面 sc delete mysql 这个mysql ...

  3. sql转Linq的工具

    本文转载:http://www.cnblogs.com/huangxincheng/archive/2011/05/12/2044990.html 介绍一个小工具 Linqer   这些天写Linq挺 ...

  4. c++制作小游戏--雷电

    用c++实现了一个小游戏--雷电,貌似执行的还不错.贴图和声效也是Duang!Duang!的.整个项目我也会给出下载链接,有兴趣的能够编译执行一下.用到了C++11的新特性,最好是使用vs2013编译 ...

  5. C# - 转换

    无论什么类型 它们存储的其实都是一系列的位 在将A类型转换为B类型时 如果能完整转换 那么系统会将两个操作数自动进行隐式转换 但也有可能因为A类型的存储位数比B类型的存储位数大 那么B类型可能就没有足 ...

  6. Hadoop Oozie 学习笔记

    Oozie是一个工作流引擎服务器,用于运行Hadoop Map/Reduce和Pig 任务工作流.同时Oozie还是一个Java Web程序,运行在Java Servlet容器中,如Tomcat. O ...

  7. 通过ftp模拟网盘

    package com.xiaomo.ftp.down_upload; import java.io.IOException; import java.util.ArrayList; import j ...

  8. hdu2565java

    放大的X Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submissio ...

  9. android自定义View之NotePad出鞘记

    现在我们的手机上基本都会有一个记事本,用起来倒也还算方便,记事本这种东东,如果我想要自己实现,该怎么做呢?今天我们就通过自定义View的方式来自定义一个记事本.OK,废话不多说,先来看看效果图. 整个 ...

  10. Android 自定义View修炼-Android实现圆形、圆角和椭圆自定义图片View(使用BitmapShader图形渲染方法)

    一.概述 Android实现圆角矩形,圆形或者椭圆等图形,一般主要是个自定义View加上使用Xfermode实现的.实现圆角图片的方法其实不少,常见的就是利用Xfermode,Shader.本文直接继 ...