码迷,mamicode.com
首页 > 其他好文 > 详细

分类(Category) 类扩展(Class Extensions)

时间:2015-08-25 13:55:25      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:

使用Category需要注意的点:

(1) Category的方法不一定非要在@implementation中实现,也可以在其他位置实现,但是当调用Category的方法时,依据继承树没有找到该方法的实现,程序则会崩溃。

(2) Category理论上不能添加变量,但是可以使用@dynamic 来弥补这种不足。

 
Extension非常像是没有命名的类别。
Extension中的方法必须在@implementation中实现,否则编译会报错。
 
分类和类扩展的相似之处是:都可以为类添加一个额外的方法;
 
不同之处在于:要添加额外方法,分类(Category必须在第一个@interface中声明方法,并且在@implementation中提供实现,不然运行时出错。而类扩展(Class Extensions),你添加的方法是一个required API,如果不去实现,编译器会警告,而且这个方法的声明可以不在第一个@interface中去声明。

分类(Category) 类扩展(Class Extensions)

标签:

原文地址:http://www.cnblogs.com/caohaozhi/p/4756649.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!