-(void)invokeMethod
{
NSMethodSignature * sig = [[source class] instanceMethodSignatureForSelector:@selector(mySelector:)];
NSInvocation * invocation = [NSInvocation invocationWithMethodSignature:sig];
[invocation setTarget:myTarget];
[invocation setSelector:@selector(mySelector:)];
MySubClassOfNSInvocationOperation * command = [[[MySubClassOfNSInvocationOperation alloc] initWithInvocation:invocation] autorelease];
//setArgument retains command
[invocation setArgument:&command atIndex:2];
//addOperation retains command until the selector is finished executing
[operationQueue addOperation:command];
}
-(void)mySelector:(MySubClassOfNSInvocation*)command
{
//Do stuff
}
Je ne sais pas exactement ce qui se passe, mais NSInvocation
& MySubClassOfNSInvocationOperation
fuientComment puis-je résoudre cette fuite de mémoire? NSInvocation
Lorsque je supprime la ligne:
[invocation setArgument:&command atIndex:2];
Il ne fuit pas, donc une sorte de problème avec passer la commande comme argument.
Parfait. Merci –