@synthesize dataController не был вызван - PullRequest
0 голосов
/ 28 августа 2009
- (void)applicationDidFinishLaunching:(UIApplication *)application {    

    // Create the data controller.
    DataController *controller = [[DataController alloc] init];
    self.dataController = controller;


    [controller release];

    rootViewController.dataController = dataController;


    // Override point for customization after app launch    
    [window addSubview:[navigationController view]];
    [window makeKeyAndVisible];
}

В моем приложении я нашел rootViewController.dataController = dataController; не работал. И я установил точку останова на @synthesize dataController, обнаружил, что @synthesize dataController не был вызван.

Что не так с моим кодом.

Я сравниваю весь мой код с SimpleDrillDownApp (пример от Apple), они почти одинаковы. Почему мое приложение не работает! Компиляция прошла. Но это не сработало правильно.

Кто-нибудь может мне помочь?

Ответы [ 3 ]

1 голос
/ 28 августа 2009

Не видя ваш код, наиболее очевидный вывод заключается в том, что rootViewController равен nil и, таким образом, rootViewController.dataController = dataController; ничего не делает, потому что Objective-C рассматривает сообщения как ноль как неактивные.

Итак, убедитесь, что rootViewController не ноль, прежде чем делать что-либо еще.

0 голосов
/ 01 марта 2010

dataController - это простой доступ к ivar.

self.dataController будет проходить через геттер, нет?

0 голосов
/ 28 августа 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...