Objective-C-Category类别
2015-01-10 22:45
351 查看
Object-C开发的时候有的时候会用到Category类,类似于Java和C#中扩展类,就是如果你觉得如果你觉得常用的方法在String中没有,可以根据业务需求和个人喜好写一个扩展类,然后在其中补充自己的方法,如果单纯的扩展已有类型来看基本上是一样的。OC还有可以对已经存在类通过Category进行扩展,这个特点又和C#中的partial class有的类似,先来看下是如何操作的吧:
新建的时候选择Object-C File:
选择类型为Category,第一个是是Categroy名称,第三个类选择可以是知己新建的类,也可以是系统本身的类,本次选的个人新建的:
这个时候生成文件如下:
写了几行代码,Book+FlyElephant.h代码:
Book+FlyElephant.m中的代码:
具体调用代码:
以上的实现比较简单,上面有一个关于NSString的Categroy类的,跟Book创建差不多,实现了一个方法就是如果字符串超过一定的长度,返回特定值:
NSString+StrExtend.h中的代码:
NSString+StrExtend.m中的代码:
具体的调用:
第一个是静态方法也就是类方法调用需要NSString调用,第二个是动态方法也就是对象方法,调用稍微简单点,其他的应该都很容易理解~如有不当,多多指正~
新建的时候选择Object-C File:
选择类型为Category,第一个是是Categroy名称,第三个类选择可以是知己新建的类,也可以是系统本身的类,本次选的个人新建的:
这个时候生成文件如下:
写了几行代码,Book+FlyElephant.h代码:
#import "Book.h" @interface Book (FlyElephant) - (void)detialMore:(NSString*)author; @end
Book+FlyElephant.m中的代码:
#import "Book+FlyElephant.h" @implementation Book (FlyElephant) - (void)detialMore:(NSString*)author { NSLog(@"分类中可以获取更多的详细信息%@",author); } @end
具体调用代码:
Book *book=[Book new]; [book detialMore:@"keso"];
以上的实现比较简单,上面有一个关于NSString的Categroy类的,跟Book创建差不多,实现了一个方法就是如果字符串超过一定的长度,返回特定值:
NSString+StrExtend.h中的代码:
#import <Foundation/Foundation.h> @interface NSString (StrExtend) +(NSString *)subStr:(NSString *)originalStr; - (NSString *)subStr2; @end
NSString+StrExtend.m中的代码:
#import "NSString+StrExtend.h" @implementation NSString (StrExtend) + (NSString *)subStr:(NSString *)originalStr { return [originalStr length]<10?@"长度不够,请重新输入":[originalStr substringWithRange:(NSMakeRange(0, 10))]; } - (NSString *)subStr2 { return self.length<10?@"长度不够,请重新输入":[self substringWithRange:(NSMakeRange(0, 10))]; } @end
具体的调用:
NSLog(@"%@",[NSString subStr:@"气若兰兮长不改,心若兰兮终不移"]); NSString *str=[@"气若兰兮长不改,心若兰兮终不移" subStr2]; NSLog(@"%@",str);
第一个是静态方法也就是类方法调用需要NSString调用,第二个是动态方法也就是对象方法,调用稍微简单点,其他的应该都很容易理解~如有不当,多多指正~
相关文章推荐
- Objective-C----Category 类别、Extension 扩展 专题总结
- 黑马程序员——Objective-C中的Category(类别)——黑马 IOS 技术博客
- Category 类别 -Objective-C
- Category 类别 -Objective-C
- objective-c中Category类别(扩展类)专题总结
- Objective-C 类别(Category) 与 子类(继承基类)
- Objective-C——类别(Category)详解
- Objective-C 类别(category)和扩展(Extension)
- Category 类别 -Objective-C
- Objective-C /iphone开发基础:分类(category,又称类别)
- Objective-C中的协议(Protocol)和类别(Category)
- objective-c中Category类别(扩展类)专题总结
- Objective-C,ios,iphone开发基础:分类(category,又称类别)
- Objective-C - 分类(类别)的应用 Category
- [Objective-C] 005_Category(类别)
- Objective-C中的类别(category)
- Objective-C 类别(Category)浅谈
- Objective-c Category(类别)
- Objective-c Category(类别)
- 【Objective-C基础】类别Category