appdelegate делегат общего экземпляра - PullRequest
3 голосов
/ 20 февраля 2011
    MyAppDelegate *appD;        
    appD = [UIApplication sharedApplication];

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

Не дает ошибок при компиляции. Работает без предупреждения, но не работает.

Я не понимаю, в чем проблема.

...

EDIT: OMG, тоже должен был вызвать метод делегата:

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

Ответы [ 2 ]

2 голосов
/ 04 февраля 2013

Я рекомендую вам этот метод, чтобы поделиться делегатом приложения: https://coderwall.com/p/z4h4uw?i=2&p=1&q=&t%5B%5D=%21%21mine&t%5B%5D=%21%21bookmarks

1 голос
/ 20 февраля 2011

и создал приложение Delegate…

Нет, вы ничего не создали, вы только что объявили переменную, которая может указывать на делегата вашего приложения. Но вы еще ничего не присвоили этой переменной.

И создание экземпляра другого объекта здесь будет неправильным, поскольку экземпляр делегата приложения уже существует. Вам просто нужно сослаться на существующего делегата приложения и присвоить его своей переменной:

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

(Кстати, вы должны следовать соглашениям об именах. Имена классов всегда должны начинаться с заглавной буквы.)

...