我有我測試下面的代碼:NSInvocation的setSelector拋出一個異常
NSString * parameterSignature = @"@:";
NSMethodSignature * signature = [NSMethodSignature signatureWithObjCTypes:[parameterSignature UTF8String]];
NSInvocation * invocation = [NSInvocation invocationWithMethodSignature:signature];
[invocation setSelector:@selector(aMethodWithNoParms)];
當setSelector執行我得到這個錯誤:
Name: NSInvalidArgumentException
File: Unknown
Line: Unknown
Reason: -[NSInvocation setArgument:atIndex:]: index (1) out of bounds [-1, 0]
我一直曳網尋找原因並找不到它。它看起來像試圖設置將作爲選擇器的調用的第二個參數,但該數組不夠長。我會認爲調用的創建會設置數組。
我不知道如何解決這個問題,任何人看到我做錯了什麼?
您能否提供aMethodWithNoParms方法聲明? – Radu 2011-06-16 13:49:37
嘗試使用具有類似這樣的參數的選擇器方法 - (void)SetSelectorMethod:(id)sender – Radu 2011-06-16 13:51:51