首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

objective-c 札记5:类别

2013-01-18 
objective-c 笔记5:类别?2.类别的局限性:? ?第一:无法向类中添加新的实例变量。(可以使用全局字典存储对象

objective-c 笔记5:类别

?

2.类别的局限性:

? ?第一:无法向类中添加新的实例变量。(可以使用全局字典存储对象与你想要关联的额外变量之间的映射,但也要考虑是否s是完成当前任务的最佳选择)

? ?第二:名称冲突,即类别中的方法与现有的方法重名。当发生名称冲突时,类别具有更高的优先级。你的类别方法将完全取代初始方法,从而无法再使用初始方法,增加前缀是个不错的选择。

?

3.类表的优点(作用)

? 第一:类的实现不能分散到多个不同的.m文件中。而类别的实现则可以分散到多个不同的.m文件或多个不同的框架中。

? eg:

??@interface CategoryThing : NSObject{

[finder release];//好习惯从现在开始

? ? 委托对象ITunesFinder 又是长什么样呢?

? ?ITunesFinder 接口:

? ??@interface ITunesFinder : NSObject

? ? @end // so easy?

?

? ? 并不需要在@interface ?中声明方法。要成为一个委托对象,我们只需要实现已经打算调用的方法。

?

? ?@implementation ITunesFinder

?

? ?-(void) test1

? ?{

? ? ? .......

? ? }

?

? -(void) test2

? {

? ? .....

? }

?

? test1和test2 为委托方法。

?

? 委托和类别的关系:

?

?委托强调类表的另一种应用:被发送给委托对象的方法可以声明为一个NSObject 的类别。

?

响应选择器:

?@selector(test1:)

如果该委托对象能够响应给定的消息,则向该对象发送此消息,否则,将暂时忽略该委托对象,继续正常运行。

选择器可以被传递,可以作为方法的参数使用,可以作为实例变量存储。

?

?

?

?

?

?

热点排行