MyAppDelegate *appD;
appD = [UIApplication sharedApplication];
if(appD.sw1.on)
NSLog(@"It is ON");
else
NSLog(@"It is OFF");
编译时不会出错。在没有任何警告的情况下运行,但它不起作用。
我看不出问题所在。
...
修改 OMG,也应该调用委托方法:
appD = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
答案 0 :(得分:2)
我建议您使用此方法来共享应用委托: https://coderwall.com/p/z4h4uw?i=2&p=1&q=&t%5B%5D=%21%21mine&t%5B%5D=%21%21bookmarks
答案 1 :(得分:1)
并实例化appDelegate ...
不,你没有实例化任何东西,你刚刚声明了一个可以指向你的app委托的变量。但是你尚未为该变量分配任何内容。
由于app委托实例已经存在,因此在这里实例化另一个对象会出错。您只需要引用现有的应用程序委托并将其分配给您的变量:
appD = (myAppDelegate *)[[UIApplication sharedApplication] delegate];
(顺便说一句,你应该遵循命名约定。类名应该始终以大写字母开头。)