我有工作代码: [self performSelector:@selector(doSomething)];
但当我将此行更改为:
[self performSelector:@selector(doSomething)withObject:nil afterDelay:1.0];
它报告错误 - 无法识别的选择器....
你可以告诉我这是什么问题吗?谢谢
答案 0 :(得分:5)
如果您更改了方法以获取对象参数,则需要更改@selector()
参数以包含“:”,例如@selector( doSomething: )
这有效:
- (void) foo
{
NSLog(@"foo!");
}
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
[self performSelector: @selector(foo) withObject: nil afterDelay: 0.1];
}
所以你可以把一个不带参数的选择器传递给performSelector:withObject:afterDelay:
,我认为它忽略了我不是100%肯定的withObject:
参数。
答案 1 :(得分:1)
看起来您的问题是您的选择器是doSomething
而不是doSomething:
。如果没有:
,则消息中无处插入对象,甚至nil
。
答案 2 :(得分:0)
自我还在吗?您可能正在尝试向NSZombie发送消息。