gpt4 book ai didi

objective-c - 如何从 AppDelegate 拥有的类访问其属性?

转载 作者:行者123 更新时间:2023-12-03 17:49:42 27 4
gpt4 key购买 nike

我正在编写一个简单的 OS X 应用程序,到目前为止其结构如下:

  • 主要业务逻辑在AppDelegate.m
  • 有 2 个带有 xib 的 ViewControllersAppDelegate 拥有并在窗口中呈现

我有时需要从 ViewController 访问 AppDelegate 上的属性,我这样做是这样的:

AppDelegate *delegate = (AppDelegate *)[[NSApplication sharedApplication] delegate];
delegate.someProperty = someValue;

这“感觉”很hacky。这是一个正确的模式还是这真的很愚蠢?

我提出的两种替代架构是:

  1. 使用委托(delegate)并在 VC 中定义某种“UI Delegate”协议(protocol)并使 AppDelegate 符合它
  2. 让 VC 发布 AppDelegate 监听的通知

第一个感觉困惑又肮脏,第二个感觉不可靠。

这里正确的模式是什么? AppDelegate 拥有的 VC 应如何访问其属性?

最佳答案

试试这个

AppDelegate *app = [NSApp delegate];

而不是这个

AppDelegate *delegate = (AppDelegate *)[[NSApplication sharedApplication] delegate];

关于objective-c - 如何从 AppDelegate 拥有的类访问其属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31274119/

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