«Корневой» ключ из plist не распознается из AppDelegate? - PullRequest
0 голосов
/ 08 августа 2011

У меня простой вопрос: почему «origineArray» возвращает (null)? я обнаружил, что если я помещаю весь код в RootViewController, он работает, но если я помещаю его в AppDelegate (как в примере кода, я не знаю, какой путь лучше?), он не распознает " Корневой "ключ:

- (id)init {
    self = [super init];
    if (self){
        NSString *path = [[NSBundle mainBundle] bundlePath];
        NSString *finalPath = [path stringByAppendingPathComponent:@"origine.plist"];
        origine = [[NSDictionary dictionaryWithContentsOfFile:finalPath]retain];
    }
    return self;
}


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
    NSLog(@"origine data : %@", origine);
    NSArray *origineArray = [origine objectForKey:@"Root"];
    NSLog(@"origineArray data : %@", origineArray);

Спасибо за вашу помощь

Ответы [ 2 ]

1 голос
/ 08 августа 2011

Если ваш делегат приложения создан в nib-файле, метод init не вызывается. Элементы в перьях уже заархивированы.

Если вы хотите инициализировать объект, загруженный из NIB, реализуйте метод - (void) awakeFromNib.

0 голосов
/ 08 августа 2011

Вы входите в словарь "origin", что он входит в консоль? Если ключа «Root» нет, очевидно, вы не открываете нужный файл. Если словарь имеет значение ПУСТО (NULL), вам необходимо исправить путь.

Вы уверены, что finalPath содержит правильный путь? Похоже, что origin.plist находится в папке ресурсов, но вы используете расположение пакета приложения в поисковике.

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