• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Objective-C-Category类别

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

Object-C开发的时候有的时候会用到Category类,类似于Java和C#中扩展类,就是如果你觉得如果你觉得常用的方法在String中没有,可以根据业务需求和个人喜好写一个扩展类,然后在其中补充自己的方法,如果单纯的扩展已有类型来看基本上是一样的。OC还有可以对已经存在类通过Category进行扩展,这个特点又和C#中的partial class有的类似,先来看下是如何操作的吧:

新建的时候选择Object-C File:

选择类型为Category,第一个是是Categroy名称,第三个类选择可以是知己新建的类,也可以是系统本身的类,本次选的个人新建的:

这个时候生成文件如下:

写了几行代码,Book+FlyElephant.h代码:

1
2
3
4
5
6
7
#import "Book.h"
 
@interface Book (FlyElephant)
 
- (void)detialMore:(NSString*)author;
 
@end

  Book+FlyElephant.m中的代码:

1
2
3
4
5
6
7
8
9
10
#import "Book+FlyElephant.h"
 
@implementation Book (FlyElephant)
 
- (void)detialMore:(NSString*)author
{
    NSLog(@"分类中可以获取更多的详细信息%@",author);
}
 
@end

  具体调用代码:

1
2
Book *book=[Book new];
    [book detialMore:@"keso"];

 以上的实现比较简单,上面有一个关于NSString的Categroy类的,跟Book创建差不多,实现了一个方法就是如果字符串超过一定的长度,返回特定值:

NSString+StrExtend.h中的代码:

1
2
3
4
5
6
7
8
#import <Foundation/Foundation.h>
 
@interface NSString (StrExtend)
 
+(NSString *)subStr:(NSString *)originalStr;
- (NSString *)subStr2;
 
@end

NSString+StrExtend.m中的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#import "NSString+StrExtend.h"
 
@implementation NSString (StrExtend)
 
+ (NSString *)subStr:(NSString *)originalStr
{
    return [originalStr length]<[email protected]"长度不够,请重新输入":[originalStr substringWithRange:(NSMakeRange(0, 10))];
}
- (NSString *)subStr2
{
    return  self.length<[email protected]"长度不够,请重新输入":[self substringWithRange:(NSMakeRange(0, 10))];
}
 
@end

  具体的调用:

1
2
3
NSLog(@"%@",[NSString subStr:@"气若兰兮长不改,心若兰兮终不移"]);
 NSString *str=[@"气若兰兮长不改,心若兰兮终不移" subStr2];
 NSLog(@"%@",str);

  第一个是静态方法也就是类方法调用需要NSString调用,第二个是动态方法也就是对象方法,调用稍微简单点,其他的应该都很容易理解~如有不当,多多指正~

本文转自Fly_Elephant博客园博客,原文链接:http://www.cnblogs.com/xiaofeixiang/p/4215696.html,如需转载请自行联系原作者


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap