MyAppDelegate *appD;        
    appD = [UIApplication sharedApplication];

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

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

我不明白问题是什么。

...

编辑: OMG也应该称为委托方法:

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

有帮助吗?

解决方案

I recommend you this method to share the app delegate: https://coderwall.com/p/z4h4uw?i=2&p=1&q=&t%5B%5D=%21%21mine&t%5B%5D=%21%21bookmarks

其他提示

and instantiated an appDelegate …

No, you haven't instantiated anything, you've just declared a variable that can point to your app delegate. But you haven't assigned anything to that variable yet.

And instantiating another object would be wrong here since the app delegate instance already exists. You just have to reference the existing app delegate and assign it to your variable:

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

(Btw, you should follow the naming conventions. Class names should always begin with a capital letter.)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top