个人对署理Delegate的理解

个人对代理Delegate的理解
代理相当于一个抽象类(里面有一部分功能已经实现,而有一部分,则需要你的代码去具体实现。使用代理,相当于当某个时间触发时让系统调用你自己的实现。


Iphone开发中,Apple提供了xcode开发平台和Interface Builder界面开发工具。开发人员可以先用IB开发界面,而后用xcode开发代码,最后将两者连在一起,实现具体功能。

当视图创建好后,需要用有自己的类去实现一个View Controller.而这个Controller和View 通讯的关键在于Delegate. 每个Delegate有要求实现的方法.如:你有一个scrollView的对象,在滚动的时候,你如果希望它滚动完全之后,进行操作,你就需要给这个scrollView的对象指定一个delegate(实现了UIScrollViewDelegate),这个delegate已经实现了scrollViewDidEndDecelerating:这个函数,这样,当scrollView对象滚动结束之后,你的delegate的scrollViewDidEndDecelerating:函数就会得到响应。

个人理解是Iphone开发是一种基于MVC的开发模式, 而Delegate是联系View和Controller的桥梁.Controller可以通过Delegate传递信息给View(如文本框内容什么的)
1 楼 jyasa 2010-07-15  
那就如同老J2me里的所有View继承一个顶层抽象类的手法去实现View Controller一样.
那这种就是MVC架构模式.Delegate我暂且理解为View和Controller的桥梁。
但你说Controller可以通过Delegate传递信息给文本框内容什么的我就不能理解了。难道说Delegate和Iphone里的文本框控件建立了直接关系?那我可以理解为文本框继承或者实现了Delegate的接口么。

或许意思我表达错了,但直接传递给文本框确实有点。希望你能明白我的意思
2 楼 xupf1977 2010-07-16  
jyasa 写道
那就如同老J2me里的所有View继承一个顶层抽象类的手法去实现View Controller一样.
那这种就是MVC架构模式.Delegate我暂且理解为View和Controller的桥梁。
但你说Controller可以通过Delegate传递信息给文本框内容什么的我就不能理解了。难道说Delegate和Iphone里的文本框控件建立了直接关系?那我可以理解为文本框继承或者实现了Delegate的接口么。

或许意思我表达错了,但直接传递给文本框确实有点。希望你能明白我的意思


我大概明白你的意思。View Controller在Delegate定义的方法(需Override)里面处理文本框内容的修改什么的(跟文本框本身没有直接关系,我只是举个例子)。