【发布时间】:2015-07-08 20:38:19
【问题描述】:
我正在编写一个简单的 OS X 应用程序,到目前为止的结构如下:
- 主要业务逻辑在
AppDelegate.m -
AppDelegate拥有 2 个带有 xib 的ViewControllers,并在窗口中显示
我有时需要从 ViewControllers 访问 AppDelegate 上的属性,我这样做是这样的:
AppDelegate *delegate = (AppDelegate *)[[NSApplication sharedApplication] delegate];
delegate.someProperty = someValue;
这“感觉”很老套。这是正确的模式还是真的很愚蠢?
我想出的两种替代架构是:
- 使用委托并在 VC 中定义某种“UI Delegate”协议并使 AppDelegate 符合它
- 让 VC 发布 AppDelegate 监听的通知
第一个感觉纠结脏乱,第二个感觉不靠谱。
这里的正确模式是什么? AppDelegate拥有的VC应该如何访问其属性?
【问题讨论】:
标签: objective-c macos cocoa