3
    MyAppDelegate *appD;        
    appD = [UIApplication sharedApplication];

    if(appD.sw1.on)
        NSLog(@"It is ON");
    else
        NSLog(@"It is OFF");

编译时不报错。运行没有任何警告,但它不起作用。

我不明白问题是什么。

...

编辑: 天哪,也应该调用委托方法:

appD = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
4

2 回答 2

2

我建议您使用此方法共享应用程序委托: https ://coderwall.com/p/z4h4uw?i=2&p=1&q=&t%5B%5D=%21%21mine&t%5B%5D=%21%21bookmarks

于 2013-02-04T12:18:02.560 回答
1

并实例化了一个 appDelegate ...</p>

不,您还没有实例化任何东西,您只是声明了一个可以指向您的应用程序委托的变量。但是您尚未为该变量分配任何内容。

并且在这里实例化另一个对象是错误的,因为应用程序委托实例已经存在。您只需引用现有的应用程序委托并将其分配给您的变量:

appD = (myAppDelegate *)[[UIApplication sharedApplication] delegate];

(顺便说一句,您应该遵循命名约定。类名应始终以大写字母开头。)

于 2011-02-20T00:05:06.767 回答