这是我不能工作的东西....我可以使视图控制器与我的自定义对象聊天就好了....但是如何将消息从我的对象发送到视图控制器?模型如何与视图控制器交谈?
从myViewController为myObject的消息将如下所示 [myObject的doSomething的]。
相反的消息是什么样的?以另一种方式发送消息是否有意义?
非常感谢您的帮助!
这是我不能工作的东西....我可以使视图控制器与我的自定义对象聊天就好了....但是如何将消息从我的对象发送到视图控制器?模型如何与视图控制器交谈?
从myViewController为myObject的消息将如下所示 [myObject的doSomething的]。
相反的消息是什么样的?以另一种方式发送消息是否有意义?
非常感谢您的帮助!
您可以将控制器传递给模型,但通常需要模型不依赖于视图或控制器。
为了避免这种情况,使该模型想告诉和具有视图控制器实现它,并有模型采取协议,而不是视图控制器作为一个属性的实例的协议。
为什么你想要你的模型积极地与任何事情谈话?视图控制器是应用程序流的主动管理者,并启动与模型的通信,而不是相反。
你可以说一个更具体的情况下,你真的需要这样做吗?
就像你怀疑自己一样,大多数情况下,“以其他方式发送信息是没有意义的”。但是如果你确实需要这么做的话,一种合适的方式将信息从模型中“传出”出notifications.您可以让模型发送通知,并且视图控制器或任何其他对象可以订阅这些通知(如果他们在意的话),但是从模型到其他应用程序片段没有紧密耦合。
非常感谢Jaanus ....这就是我想知道的。我注意到在他们的文档中使用术语通知的苹果。我会检查你的链接。非常感谢你和所有其他人的回答! – Ben 2010-07-22 02:38:43
我经常使用NSNotificationCenter从模型对象向感兴趣的控制器广播更新。对于更紧密的绑定交互,请考虑为模型对象制作委托协议。
通知主要是单向的,虽然听众可以访问发送通知的模型对象。可以有任何数量的相关方,其中包括控制器来来去去,但模型是持久的。
委托是双向的,但一次只能有一个委托。通常,委托人预计会比它代表的对象长。委托对于需要额外用户输入的模型对象生命周期阶段可能是有益的。
通知和代表可以同时使用。与UIApplication一样,通常在发送通知之前调用委托。
除了“退货”? – 2010-07-22 01:31:03
不知道你是什么意思...你必须非常明确,因为我对此很新颖...... – Ben 2010-07-22 01:32:43
没有“相反的讯息”。这是一个“返回”声明。 – 2010-07-22 01:38:03