Je vois beaucoup d'API Objective-C/Cocoa SDK dans lesquelles vous pouvez spécifier une cible et une action qui seront rappelées.Appel des méthodes @selector entre les classes
Je veux faire la même chose dans deux de mes classes mais quand je stocke le passé dans le sélecteur et essayer plus tard pour l'appeler, je reçois l'exception,
« sélecteur non reconnu envoyé à instance »
Je passer à ClassB la cible et l'action comme celui-ci:
[myClassB doSomething:self action:@selector(anAction:)];
ClassB est déclaré et mis en œuvre comme celle-ci:
@interface ClassB
{
id target;
SEL targetAction;
}
@implementation ClassB
-(void)theWork {
if ([target respondsToSelector:targetAction])
{
[target targetAction];
}
}
Au cours du processus de construction, je reçois aussi l'avertissement suivant:
pas de méthode 'de -targetAction' trouvé
Comment puis-je invoquer l'action cible qui a été fourni?
Ce que je veux atteindre est semblable à ceci:
UIBarButtonItem *cancelButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel
target:self
action:@selector(cancelItem:)];