Вопрос

    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