У меня есть архив, который хранится в файле "Presidents.plist". Он существует, и я могу найти его, используя метод pathForResource
. А также я получаю данные с использованием метода initWithContentsOfFile
NSData
для извлечения данных. Проблема теперь в этих строках кода.NSKeyedUnarchiver decodeObjectForKey, возвращающий нулевой класс
NSString *path = [[NSBundle mainBundle] pathForResource:@"Presidents"
ofType:@"plist"];
NSData *data;
NSKeyedUnarchiver *unarchiver;
data = [[NSData alloc] initWithContentsOfFile:path];
unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
id presidents = [unarchiver decodeObjectForKey:@"Presidents"];
По какой-то причине он возвращает нулевой класс вместо ожидаемого класса NSArray. Может ли кто-нибудь сказать мне, почему это происходит, и как я могу решить эту дилемму?
Я получаю класс, как это ...
NSLog(@"presidents class = %@", NSStringFromClass([presidents class]));
чувак !, ты чувак право? Я сделал это 'NSMutableDictionary dict = [unarchiver decodeObjectForKey: @" Президенты "];' и выполнил его. Вывод: 'dict = (null)'; С другой стороны, содержимое plist представляет собой массив. Но тогда он также возвращает null. – jovhenni19
Я обновил вопрос. Пожалуйста, взгляните на него! Спасибо! – jovhenni19