У меня есть следующий код:Weird NSDictionary аварии
NSDictionary *dict = [[NSDictionary alloc]
initWithObjectsAndKeys:myarray1, @"array1", myarray2, @"array2" nil];
NSArray *shorts =[[dict allKeys] sortedArrayUsingSelector:@selector(compare:)];
for (NSString *dir in shorts) {
NSArray *tempArr = [dict objectForKey:dir];
for (NSString *file in tempArr) {
NSLog(@"%@", file);
}
}
Где myarray1 и myarray2 являются NSArrays.
Когда я выполнить код сбои приложений с:
-[NSCFString countByEnumeratingWithState:objects:count:]: unrecognized selector sent to instance 0x1d134
Это, очевидно, tempArr, который не признается в качестве NSArray. Я знаю, что [dicFiles objectForKey:dir]
возвращает объект типа id
, но в качестве общего типа я не могу получить то, что я делаю неправильно.
Это сделало трюк .... вы были правы, это была моя ошибка –
Когда вы видите сообщение об ошибке «непризнанный селектор», вам повезло, потому что сообщение говорит вам точно, что пошло не так. В этом случае структура пыталась отправить частный вариант '-count' - сообщение NSArray'а в экземпляр' NSCFString' (частный подкласс 'NSString'). – jlehr
Много thaks для этого уведомления! Его действительно полезно –