【发布时间】:2009-05-04 16:30:06
【问题描述】:
考虑以下常见情况:
您的 Cocoa 应用程序中有一些 MainView,从一个由 MainViewController 控制的 NIB 加载。您的MainView 包含一些控件,例如UILabel infoLabel。您还有一个代表MyDelegate 类,它接收某种事件。
您希望确保当MyDelegate 收到它的事件时,infoLabel 会得到适当的更新。但是,问题在于MyDelegate 没有对MainView 或MainViewController 的引用,也不知道标签。
一种解决方案是将MainViewController 引用传递给委托对象,但这感觉不对,因为您可能会发现自己处于对象具有彼此引用的不良情况。
解决这个问题的正确设计是什么?
【问题讨论】:
-
我现在遇到同样的问题。我们的解决方案是引用。你说这是一个不受欢迎的情况。你能解释一下原因吗?
-
对我来说,主要有两个原因:循环引用“感觉”不对;你倾向于不断地投射参考。我可能完全不在了。
-
我知道你的意思。我期待其他人对此的看法。好问题。
标签: objective-c cocoa touch