gpt4 book ai didi

objective-c - 对类实例的全局访问 - 最佳设计方法?

转载 作者:行者123 更新时间:2023-12-03 17:23:14 25 4
gpt4 key购买 nike

好吧,这是我的情况,我真的不确定该使用哪种设计方法。因此,我很高兴阅读有关我的特定案例的一些意见...

场景:

  • 我有一个基于选项卡的应用程序
  • 最初,我们创建一个 NSWindowController 实例(例如 MyDocumentManager),它负责选项卡的创建/操作
  • 每个选项卡都包含(= 附加到)一个 MyDocument 实例

现在,我要实现菜单操作。

  • 对于每个菜单,都有一个单独的菜单 Controller (实际上是分组所有相关功能的 NSObject 的子类),例如MyFileMenuController
  • 文件菜单的操作通过 Interface Builder 链接到 MyFileMenuController 对象中的操作

问题:

  • MyFileMenuController 怎么可能“知道” MyDocumentManager(在我的 AppDelegate.m 中创建) ,以便我们可以访问当前文档详细信息并执行所有相关操作?有任何想法吗?哪种方法更可取?
<小时/>

我的想法:

  • 在类之间传递对象(听起来不太好)
  • 单例(尽管老实说我从未使用过它们,并且不知道这是否/如何可能是我的特殊情况)
  • 通知和通知监听器
  • (从反面看,虽然不确定)委托(delegate)方法

最佳答案

好的(不确定这是否是最好的方法),但这就是我决定做的:

[[[NSApplication sharedApplication] delegate] MyDocumentManager]

因此,只要一个对象是我的 AppDelegate 的一部分,这样我就可以从任何地方访问它。

关于objective-c - 对类实例的全局访问 - 最佳设计方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14909946/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com