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

类别和类扩展

时间:2015-05-07 23:44:02      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:

1、在iOS中,有一种机制可以使用户在没有源码的情况下扩展类的功能,但不是通过继承,这就是类别。iOS中没有类似C++中可以定义私有方法和私有变量的关键字,要定义私有方法和私有变量,可以用类扩展来实现。但类别不能添加类的属性和私有变量。类别可以用来扩展Cocoa中类的方法,也可以用来扩展用户自己的类中的方法。当我们查看系统头文件的时候能发现类似@interface NSMutableArray (NSExtendedMutableArray)的类定义,其实这就是类别的定义形式。

2、类 扩展,它与类别的不同之处在于,括号里不需要写名字。同时也可以在类扩展中定义属性以及私有变量。另一个不同之处在于,类扩展必须与类定义以及类的实现同 时编译,也就是说,类扩展只能针对自定义的类,不能给系统类增加类扩展。类扩展定义的方法必须在类的实现中进行实现。如果单独定义类扩展的文件并且只定义 属性的话,也需要将类实现文件中包含进类扩展文件,否则会找不到属性的set和get方法。

类别和类扩展

标签:

原文地址:http://www.cnblogs.com/zdong/p/4486139.html

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