gpt4 book ai didi

objective-c - 尝试访问应用程序委托(delegate)变量/属性

转载 作者:搜寻专家 更新时间:2023-10-30 19:54:40 24 4
gpt4 key购买 nike

我正在使用我的应用程序委托(delegate)的变量/属性作为全局变量。 (我不想处理单例类。)

我正在尝试在我的 Application Delegate 类中编写 #define 语句。如果我输入:

  [UIApplication sharedApplication]

在我的应用委托(delegate)类中,代码提示无法识别 sharedApplication。但是,如果我在 viewController 类中键入相同的内容,“sharedApplication”会立即弹出。

为了在我的 applicationDelegate.h(或 .m?)中定义一个 NSMutableDictionary,我写:

#define MyDictionary [[[UIApplication sharedApplication] delegate] stateDictionary]

然后如果我尝试在另一个类中使用它:

[[MyDictionary objectForKey:@"California"] largestCity];

我得到一个错误,必须先声明 MyDictionary。我真的对这里的很多概念感到困惑。

最佳答案

我很确定有人会更好地回答这个问题,但这里有一个快速的答案:

假设您的应用程序名为 myApplication。将“全局”属性分配给 MyApplicationDelegate,然后它就可以像这样从任何地方访问:

// get reference to app delegate
MyApplicationDelegate *appDelegate = (MyApplicationDelegate *)[[UIApplication sharedApplication] delegate]

Property *myProperty = appDelegate.property;

此外,请确保您链接到 header 中的 MyApplicationDelegate 文件:

#import "MyApplicationDelegate.h"

一般而言,使用“全局”对象是否是好的设计还有更长时间的争论,但我现在不谈这个。

关于objective-c - 尝试访问应用程序委托(delegate)变量/属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1343473/

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