Je le code suivant:étrange accident 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);
}
}
Où MyArray1 et MyArray2 sont NSArrays.
Lorsque j'exécute le code l'application se bloque avec:
-[NSCFString countByEnumeratingWithState:objects:count:]: unrecognized selector sent to instance 0x1d134
Ceci est apparemment le tempArr, qui n'est pas reconnu comme un NSArray. Je sais que [dicFiles objectForKey:dir]
renvoie un objet de type id
, mais en tant que type générique, je ne peux pas obtenir ce que je fais mal.
Ce fait le tour .... vous aviez raison, il était mon erreur –
Quand vous voyez un message d'erreur « sélecteur non reconnu », vous avez de la chance, parce que le message vous dit exactement ce qui s'est mal passé. Dans ce cas, le framework essayait d'envoyer une variante privée de '-count' - un message' NSArray' - à une instance de 'NSCFString' (une sous-classe privée de' NSString'). – jlehr
Beaucoup de thaks pour cet avis! C'est vraiment utile –