我是iOS的新学习者,我正在阅读“iOS编程第4版 - 大书呆子牧场”,在阅读第7章时有一个问题。
它说
按钮的寿命相对简单。对于具有更复杂生命的对象(如文本字段),Apple使用委托模式。您将文本字段引入其中一个对象:“这是您的委托,当您生活中发生任何有趣的事情时,向他发送消息。”文本字段保留指向其委托的指针。它发送给代表的许多信息都提供了丰富的信息:“好的,我已经完成了编辑!”。
这让我很困惑,因为首先,它意味着文本字段可以作为它们的委托引入我的一个对象,但最后它说“文本字段保留指向其委托的指针”。文本字段本身不是其他人的代表,是吗?所以我不明白谁是谁的代表?这是否意味着文本字段可以是其他人的委托,但它也可以拥有自己的委托?或者?
提前致谢!
答案 0 :(得分:0)
您的对象是委托人。文本字段将向其发送消息。
答案 1 :(得分:0)
了解委托的含义:它是您的委托 - 代表您的程序逻辑行事,并与UI对象交互以告诉它您想要完成。从某种意义上说,大使将是一个更好的头衔,因为它代表你在某些"远程"地点。
正如可能有美国驻泰国大使一样,你的程序可能会有一个UITextField对象的大使。当你创建UITextField时,告诉它它是什么对象的大使/委托,然后UITextField在需要知道你想要做什么时与该对象对话。
答案 2 :(得分:0)
Apple的许多框架对象都是代表。委托是指向一些你很少了解的匿名对象的指针。所有你知道的是它理解一组特定的呼叫(协议)。它就像一个私人术语。
这个想法是系统对象向委托发送信息,要么告诉它发生了什么(用户在索引4处选择了选择器项),要么询问它应该如何表现(用户想要滚动到我应该允许吗?)
通过使用委托设计模式,您可以通过各种不同的对象构建可在各种情况下使用的通用对象。
当您阅读代表时,请考虑"客户"。系统对象是店主。它的代表是客户。
店主并不需要了解他的客户。他接受产品订单,在订单准备好时拨打客户的电话号码,交出产品,拿走一些钱,继续前进。顾客甚至不必说很多店主的语言 - 只够下订单,了解订单何时准备好,以及如何付款。
协议是对象(店主)用来与其代理(客户)交谈的语言。它是一种有限的,正式定义的语言。任何理解对象(店主的)语言(协议)中所需单词的代表(客户)都可以从对象(店主)获得服务。
顺便说一下,你应该接受帮助你首先和/或最好的答案,并向你推荐所有有用的答案。在这种情况下,我认为你应该接受@MirekE的回答。他是第一个给你一个明确答案的人。