appdelegate共享实例委托

时间:2011-02-19 23:40:50

标签: objective-c scope appdelegate

    MyAppDelegate *appD;        
    appD = [UIApplication sharedApplication];

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

编译时不会出错。在没有任何警告的情况下运行,但它不起作用。

我看不出问题所在。

...

修改 OMG,也应该调用委托方法:

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

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

  

并实例化appDelegate ...

不,你没有实例化任何东西,你刚刚声明了一个可以指向你的app委托的变量。但是你尚未为该变量分配任何内容。

由于app委托实例已经存在,因此在这里实例化另一个对象会出错。您只需要引用现有的应用程序委托并将其分配给您的变量:

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

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