iOS分类和扩展(Categories和Extensions)
2013-02-21 15:57
459 查看
分类(Category)
分类能够做到的事情主要是:即使在你不知道一个类的源码情况下,向这个类添加扩展的方法。
此外,分类能够保证你的实现类和其他的文件区分开。
View Code
setNum是必须要实现,不然编译器会提出警告。
从上面看出,分类和类扩展的相似之处是:都可以为类添加一个额外的方法;
不同之处在于:要添加额外方法,分类必须在第一个@interface中声明方法,并且在@implementation中提供实现,不然运行时出错。而类扩展,你添加的方法是一个required API,如果不去实现,编译器会警告,而且这个方法的声明可以不在第一个@interface中去声明。
分类能够做到的事情主要是:即使在你不知道一个类的源码情况下,向这个类添加扩展的方法。
此外,分类能够保证你的实现类和其他的文件区分开。
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中去声明。
相关文章推荐
- iOS分类和扩展(Categories和Extensions)
- (转)iOS分类和扩展(Categories和Extensions)
- iOS分类和扩展(Categories和Extensions)
- iOS分类和扩展(Categories和Extensions)
- 谈谈iOS中Categories(分类)、Extensions(类扩展)和继承的区别
- ios分类(Categories)和类扩展(Extensions)的区别
- iOS开发---分类和扩展(Categories和Extensions)
- 谈谈iOS中Categories(分类)、Extensions(类扩展)和继承的区别
- iOS分类和扩展(Categories和Extensions)
- iOS 类别和扩展(Categories和Extensions)
- iOS 类别和扩展(Categories和Extensions)
- iOS 类别和扩展(Categories和Extensions)
- iOS 类别和扩展(Categories和Extensions)
- iOS 类别和扩展(Categories和Extensions)
- iOS 类别和扩展(Categories和Extensions)
- iOS 类别和扩展(Categories和Extensions)
- iOS 分类(Categories)与类的拓展 ( Extensions)
- iOS 类别和扩展(Categories和Extensions)
- iOS 类别和扩展(Categories和Extensions)
- iOS 类别和扩展(Categories和Extensions)