appdelegate shared instance delegate

天大地大妈咪最大 提交于 2020-01-02 07:29:12

问题


    MyAppDelegate *appD;        
    appD = [UIApplication sharedApplication];

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

Gives no error while compiling. Runs without any warning, but it doesn't work.

I dont see what the problem is.

...

EDIT: OMG, should have called delegate method too:

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

回答1:


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




回答2:


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.)



来源:https://stackoverflow.com/questions/5054251/appdelegate-shared-instance-delegate

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!