Bry*_*yan 3 delegates global-variables objective-c
我正在使用我的应用程序委托的变量/属性作为全局.(我不想处理单身类.)
我正在尝试在Application Delegate类中编写#define语句.如果我输入:
[UIApplication sharedApplication]
Run Code Online (Sandbox Code Playgroud)
在我的app委托类中,代码提示无法识别sharedApplication.但是如果我在viewController类中键入相同的内容,"sharedApplication"会弹出.
为了在我的applicationDelegate.h(或.m?)中定义NSMutableDictionary,我写道:
#define MyDictionary [[[UIApplication sharedApplication] delegate] stateDictionary]
Run Code Online (Sandbox Code Playgroud)
然后,如果我尝试在另一个类中使用它:
[[MyDictionary objectForKey:@"California"] largestCity];
Run Code Online (Sandbox Code Playgroud)
我得到一个错误,必须首先声明MyDictionary.我对这里的很多概念感到困惑.
我很确定有人会更好地回答这个问题,但这里有一个很快的问题:
假设您的应用程序名为myApplication.将"global"属性分配给MyApplicationDelegate,然后可以从以下任何位置访问它:
// get reference to app delegate
MyApplicationDelegate *appDelegate = (MyApplicationDelegate *)[[UIApplication sharedApplication] delegate]
Property *myProperty = appDelegate.property;
Run Code Online (Sandbox Code Playgroud)
此外,请确保链接到标头中的MyApplicationDelegate文件:
#import "MyApplicationDelegate.h"
Run Code Online (Sandbox Code Playgroud)
如果使用"全局"对象一般是好的设计,那么会有更长的争论,但我现在不会讨论这个问题.
| 归档时间: |
|
| 查看次数: |
7035 次 |
| 最近记录: |