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

iphone中的delegate嘱托机制

2012-07-30 
iphone中的delegate委托机制前言:iphone中如何使用委托机制,为什么要用委托机制?请先看下面的例子?Cocoa是

iphone中的delegate委托机制

前言:iphone中如何使用委托机制,为什么要用委托机制?请先看下面的例子

?

Cocoa是Mac OS和iPhone OS上的开发框架,使用Objective-C做为开发语言。当然,在代码中也可以嵌入C和C++的语句。初识Objective-C时会觉得它的语法很奇怪,但本质上和其他面向对象语言都差不多。具体语法大家可以参考相关文档。

?

在Cocoa框架中:

所有的控件、窗口等都继承自 UIView,对应MVC中的 V。UIView及其子类主要负责UI的实现,而UIView所产生的事件都可以采用委托的方式,交给UIViewController实现。对于不同的UIView,都有相应的UIViewController 对应MVC中的C。比如在iPhone OS上常用的UITableView,它所对应的Controller就是UITableViewController。至于MVC中的M,那需要根据用户自己的需求来实现了。

?

下面看一下一个自定义UIView的架构是怎么样的。这之前要认识一下Objective-C中的几个重要的关键字。

@interface 定义一个类,这个很容易和Java中的interface混淆。

@protocol 定义一个协议,我跟喜欢把它理解成一个接口,相当于Java中的interface。

Objective-C只支持单继承,但可以实现多个协议(接口),语法如下:

?

?iphone中的delegate嘱托机制?iphone中的delegate嘱托机制?iphone中的delegate嘱托机制?iphone中的delegate嘱托机制?iphone中的delegate嘱托机制?iphone中的delegate嘱托机制
    -?(id)init ??{ ??????MyUIView?*myView?=?[[MyUIView?alloc]?init];?//对MyUIView进行初始化 ??????myView.delegate?=?self;?//将MyUIViewController自己的实例作为委托对象 ??????self.view?=?myView;? ??} ????-?(void)func1 ??{ ??????//具体实现,可以加入Model相关的代码 ??}???

这么一来整个,整个代码的线路就明白了。

1.MyUIViewController初始化

2.MyUIViewController初始化时初始化MyUIView,并且将自己作为委托对象赋值给MyUIView

3.MyUIView发生事件,调用(回调)委托对象的方法,其实就是调用MyUIViewController的方法。

?

热点排行