appdelegate 共享实例委托
Posted
技术标签:
【中文标题】appdelegate 共享实例委托【英文标题】:appdelegate shared instance delegate 【发布时间】:2011-02-19 23:40:49 【问题描述】: MyAppDelegate *appD;
appD = [UIApplication sharedApplication];
if(appD.sw1.on)
NSLog(@"It is ON");
else
NSLog(@"It is OFF");
编译时不会出错。在没有任何警告的情况下运行,但它不起作用。
我不明白问题是什么。
...
编辑: OMG,也应该调用委托方法:
appD = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
【问题讨论】:
【参考方案1】:我推荐您使用这种方法来共享应用程序委托: https://coderwall.com/p/z4h4uw?i=2&p=1&q=&t%5B%5D=%21%21mine&t%5B%5D=%21%21bookmarks
【讨论】:
【参考方案2】:并实例化了一个 appDelegate ...
不,您还没有实例化任何东西,您只是声明了一个可以指向您的应用委托的变量。但是您尚未为该变量分配任何内容。
这里实例化另一个对象是错误的,因为应用程序委托实例已经存在。您只需引用现有的应用程序委托并将其分配给您的变量:
appD = (myAppDelegate *)[[UIApplication sharedApplication] delegate];
(顺便说一句,您应该遵循命名约定。类名应始终以大写字母开头。)
【讨论】:
我怎么知道你需要输入什么?你甚至不告诉我你的班级的名字。我上面建议的行是正确的。把它放在你的类的 init 方法中。以上是关于appdelegate 共享实例委托的主要内容,如果未能解决你的问题,请参考以下文章
Incompatible pointer types assiging to "UIViewController" *_Nullable' from 'AppDel
在 AppDelegate 中实例化初始 UIViewController