У меня есть файл pList:
Root - Dictionary
categories - Array
item 0 - Dictionary
item 1 - Dict
item 2 - Dict
Я загружаю файл так:
-(void) loadCategories
{
// Loads the categories from the SymbolList.plist file
NSString *file = [[NSBundle mainBundle] pathForResource:@"SymbolList" ofType:@"plist"];
NSMutableDictionary *plistSymbolList = [[NSMutableDictionary alloc] initWithContentsOfFile:file];
categoriesList = [plistSymbolList objectForKey:@"categories"];
NSLog(@"count is: %d", [categoriesList count]);
// Here I am just testing if this method will work
for(int i = 0; i < [categoriesList count]; i++)
{
NSDictionary *dict = [categoriesList objectAtIndex:i];
NSLog(@"dict count: %d", [dict count]);
}
// ideally this is what I'd like to do but doesn't work on device
for (NSDictionary *dictionary in categoriesList)
{
if (dictionary == nil)
NSLog(@"It's nil.");
NSLog(@"count: %d", [dictionary count]);
// get and display the category information
NSString *catName = [dictionary objectForKey:@"Category Name"];
NSLog(@"catName is: %@", catName);
NSString *catImage = [dictionary objectForKey:@"Category Image"];
NSLog(@"catImage is: %@", catImage);
NSString *fullFile = [NSString stringWithFormat:@"%@.png", catImage];
NSLog(@"Full file name is: %@", fullFile);
SymbolButton *categoryButton = [[SymbolButton alloc] initWithName:catName andSymbol:catImage];
[categoryButton addTarget:self action:@selector(categoryButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
[categoryButtonList addObject:categoryButton];
NSLog(@"Added Button to list");
}
[self updateCategories];
Просто чтобы напомнить, я:
1) загрузка файла для получения моего рута
2) получение моего списка категорий
3) перебирая каждый из них и получая какое-либо значение с помощью objectAtIndex ИЛИ objectForKey
ВСЕ этот код прекрасно работает на эмуляторе и работает без сбоев.
Эта функция Умирает, как только я запускаю ее на устройстве:
TestApp[4734:207] count is: 3
TestApp[4734:207] *** -[NSCFDictionary objectAtIndex:]: unrecognized selector sent to instance 0x122d10
TestApp[4734:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSCFDictionary objectAtIndex:]: unrecognized selector sent to instance 0x122d10'
Из сообщения об ошибке говорится, что проблема с моими экземплярами. Но почему это работает на сим, а не на устройстве? Все обновлено до последней версии SDK и ОС (не бета) и т. Д.
Если я закомментирую первый цикл for, я получу:
TestApp[4760:207] count is: 3
TestApp[4760:207] *** -[NSCFString count]: unrecognized selector sent to instance 0x120470
TestApp[4760:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSCFString count]: unrecognized selector sent to instance 0x120470'
Спасибо за любую помощь. Этот убивает меня:)