我有我测试下面的代码: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