-(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
}
我不知道到底發生了什麼,但NSInvocation
& MySubClassOfNSInvocationOperation
正在泄漏我該如何解決這個內存泄漏問題? NSInvocation的
當我刪除行:
[invocation setArgument:&command atIndex:2];
它不泄漏,所以某種問題以傳遞命令作爲參數。
完美。謝謝 – 2009-10-26 14:44:36