【发布时间】:2011-09-04 16:34:32
【问题描述】:
例如,我有一个模型类来处理从其他 iPhone 接收蓝牙消息。当我收到其中一条消息时,我需要更新视图。我相信这样做的标准方法是通过视图控制器。视图控制器具有对模型和视图的引用,因此可以与它们中的每一个进行通信。
但是他们应该如何将消息发送回 VC?它们每个都可以引用视图控制器(作为属性,分配不保留)。这是不好的做法(如果我没记错的话,它是循环引用)?
有没有其他方法可以做到这一点?我已经考虑过委托模式,但是要编写一个完整的委托,对于一个简单的问题来说似乎需要做很多工作。
或者,如果您认为我想多了,请随时告诉我!
[我觉得这个问题应该是以前提过的,好像挺常见的,但是搜索了一下,没找到太多]
感谢您的帮助,
【问题讨论】:
-
你可以在你的模型中添加一个委托并让它指向 VC。
-
您也可以使用本地通知中心发布通知,然后使用您的 VC 收听这些通知。
-
我会考虑使用 NSNotificationCenter,谢谢。你的意思是创建我自己的而不是使用默认的(由单例方法 defaultCenter 返回)?
-
不,只使用默认的通知中心 - 它的意思是使用 :)
-
谢谢。我想我会使用这个想法。但是,我可能只是直接从视图中听到这些消息,或者在特定场景中任何有意义的消息。 (类似于mindnoise的回答)
标签: cocoa-touch ios model-view-controller loose-coupling