Hé les gars, je cours le code suivant sur mon téléphone, où 'objet' est un chat, qui est une sous-classe de Animal. Animal a une propriété 'color':Utiliser NSMethodSignature sur iPhone (avec les propriétés Obj-C 2.0)
NSLog(@"Object: %@", object);
NSLog(@"Color: %@", [object color]);
NSMethodSignature *signature = [[object class] instanceMethodSignatureForSelector:@selector(color)];
NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
[invocation setTarget:object];
[invocation invoke];
La sortie dans ma console est:
2009-06-28 16:17:07.766 MyApplication[57869:20b] Object: <Cat: 0xd3f370>
2009-06-28 16:17:08.146 MyApplication[57869:20b] Color: <Color: 0xd3eae0>
Ensuite, je reçois l'erreur suivante:
*** -[Cat <null selector>]: unrecognized selector sent to instance 0xd3f370
Des indices? J'utilise cette méthode similaire dans d'autres classes, mais je n'arrive pas à comprendre ce que je fais de mal dans ce cas. La 'couleur' du sélecteur existe évidemment, mais je ne sais pas pourquoi elle n'est pas correctement reconnue.
"Animal a une propriété 'couleur' ..." J'aimerais beaucoup voir votre implémentation de cette propriété dans la sous-classe Seiche. :-) –
Heureusement, Obj-C est un langage réflexif. : D –