我有工作代碼: [self performSelector:@selector(doSomething)];IPhone performSelector issue
但是當我改變這一行到:
[自performSelector:@selector(doSomething的)withObject:無afterDelay:1.0];
它報告錯誤 - 無法識別的選擇....
你能告訴我是什麼問題嗎?
謝謝
我有工作代碼: [self performSelector:@selector(doSomething)];IPhone performSelector issue
但是當我改變這一行到:
[自performSelector:@selector(doSomething的)withObject:無afterDelay:1.0];
它報告錯誤 - 無法識別的選擇....
你能告訴我是什麼問題嗎?
謝謝
如果你改變了你的方法把一個對象參數,那麼你需要改變@selector()
參數包括「:」,例如,@selector(doSomething:)
這工作:
- (void) foo
{
NSLog(@"foo!");
}
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
[self performSelector: @selector(foo) withObject: nil afterDelay: 0.1];
}
所以,你可以通過一個選擇器,不採取參數performSelector:withObject:afterDelay:
,我認爲它忽略了withObject:
參數,我不是100%確定。
它看起來像你的問題是,你的選擇是doSomething
而不是doSomething:
。如果沒有:
,則消息中無處插入對象,即使是nil
。
[self performSelector:@selector(doSomething :) withObject:nil afterDelay:1.0]; 仍然是相同的錯誤 – user349302 2010-06-27 04:55:49
看到下面,簡單的測試代碼,顯示你似乎不需要有一個選擇器,當使用'peformSelector:withObject:afterDelay:'...(我不知道所以必須寫一個快速測試來確認)。 – Dad 2010-06-27 06:03:27
自我還在嗎?你可能試圖發送消息給NSZombie。
請發送更多的代碼。如果.. @ selector(doSomething :)不起作用,那麼你的方法肯定會出錯 – vodkhang 2010-06-27 05:03:23