【发布时间】:2011-10-23 14:27:34
【问题描述】:
我有一个关于已在不同对象中实例化的消息传递对象的查询。 具体来说,我想将我的“游戏状态”对象与“GLview 对象”分开,并能够从另一个对象中调用属于每个对象的方法。 实现这一目标的最佳方法是什么?
提前致谢;)
【问题讨论】:
标签: objective-c oop messaging
我有一个关于已在不同对象中实例化的消息传递对象的查询。 具体来说,我想将我的“游戏状态”对象与“GLview 对象”分开,并能够从另一个对象中调用属于每个对象的方法。 实现这一目标的最佳方法是什么?
提前致谢;)
【问题讨论】:
标签: objective-c oop messaging
有几种方法可以实现这一点。
最明显的是,您的超类可以使用引用其属性的属性(如您所描述的子对象)来定义。例如,[[gamestate subObject] doSomething],其中 'subObject' 是一个综合属性,指向您要发送消息的对象。
如果您想要更松散的耦合,请考虑使用委托模式或注册通知。
您的嵌套对象可以定义一个委托协议,在适当的时候调用它的委托方法。如果另一个对象符合协议并被分配为委托,它将接收消息。
最后,对象可以注册通知。对象 A 可以发布通知(例如,“发生某事”),对象 B 可以注册以获取通知(例如,当您收到“发生某事”的通知时执行方法 X)。
【讨论】: