您的位置:首页 > 移动开发 > IOS开发

iOS分类和扩展(Categories和Extensions)

2013-02-21 15:57 459 查看
分类(Category)

分类能够做到的事情主要是:即使在你不知道一个类的源码情况下,向这个类添加扩展的方法

此外,分类能够保证你的实现类和其他的文件区分开。

View Code

@interface MyObject:NSObject
{
NSNumber* number;
}
-(NSNumber*)getNum;
@end

@interface MyObject() //注意这里的括号里面是没有名字的
-(void)setNum:(NSNumber*)num;
@end

@implementation MyObject
-(NSNumber*)getNum
{
return number;
}

-(void)setNum:(NSNumber*)num
{
number = num;
}
@end


setNum是必须要实现,不然编译器会提出警告。

从上面看出,分类和类扩展的相似之处是:都可以为类添加一个额外的方法

不同之处在于:要添加额外方法,分类必须在第一个@interface中声明方法,并且在@implementation中提供实现,不然运行时出错。而类扩展,你添加的方法是一个required API,如果不去实现,编译器会警告,而且这个方法的声明可以不在第一个@interface中去声明。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: