NSUnknownKeyException, код соответствия KVC не работает - PullRequest
1 голос
/ 18 июня 2009

следующий фрагмент кода, который успешно создается и также мне кажется нормальным, но не работает ... учтите, что я новичок в кодировании значения ключа, и ваша помощь будет принята с благодарностью ... в табличном представлении делегат didSelectRowAtIndexPath: метод здесь список категорий - простая таблица с 5 записями

NSUInteger row = [indexPath row];
NSString *rowString = [categoriesList objectAtIndex:row];
NSString *path = [[NSBundle mainBundle] pathForResource:@"DataBase" ofType:@"plist"];
NSDictionary *rootDict = [[NSDictionary alloc] initWithContentsOfFile:path];
NSArray *allRootKeys = [rootDict allKeys];
NSMutableArray *mutableArray = [[NSMutableArray alloc] init];
for (NSString *name in allRootKeys) {
    NSInteger index = [allRootKeys indexOfObject:name];
    NSDictionary *newDict = [allRootKeys objectAtIndex:index];
    if ([newDict valueForKey:@"Class"] == rowString)
        [mutableArray addObject:[allRootKeys objectAtIndex:index]]; 
}   
NSArray *childControllerArray = [[NSArray alloc] initWithArray:mutableArray];

теперь я передаю childControllerArray в ivar loadArray моего следующего контроллера, который выдвигается, когда любая строка выбирается с определенным массивом, и отображает содержимое этого массива .... когда я удаляю приведенный выше код и передаю ему простой массив объектов, он работает просто отлично .... ПОЖАЛУЙСТА, ПОМОГИТЕ

исключение:

Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<NSCFString 0x543eb0> valueForUndefinedKey:]: this class is not key value coding-compliant for the key Class.

1 Ответ

0 голосов
/ 18 июня 2009

[rootDict allKeys]; // это массив NSStrings, НЕ Массив NSDictionarys

Этот код не может работать

NSArray *allRootKeys = [rootDict allKeys];
NSDictionary *newDict = [allRootKeys objectAtIndex:index]; 
...