2010-06-27 6 views
1

나는 코드를 가지고있다 : [self performSelector : @selector (doSomething)];IPhone performSelector issue

하지만 라인이 변경 될 때 [afterDelay 전무 : 자기 performSelector : @selector (해봐요) withObject 1.0]

단계;

는 오류보고

- 인식 할 수없는 선택기를 ....

당신의 문제가 무엇인지 말해 줄 수 있을까?

가 문제가 당신의 선택은 doSomething하지 doSomething:입니다처럼 당신이

+0

더 많은 코드를 게시하십시오. .. @ selector (doSomething :)가 작동하지 않는 경우 무언가가 실제로 잘못된 방법이됩니다. – vodkhang

답변

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: 매개 변수를 무시한다고 가정합니다.

+0

흠. 다른 제안 된 답변에 대한 귀하의 의견은 다른 일이 진행되고 있음을 나타냅니다. doSomething 메소드 코드를 게시 하시겠습니까? – Dad

+1

아마도 실제 오류 메시지가 표시 될 수 있습니다. 인식 할 수없는 _which_ 선택기가 있습니까? – Dad

1

것 같습니다 감사합니다. :이 없으면 메시지를 삽입 할 곳이 없습니다. 심지어 nil입니다.

+0

[self performSelector : @selector (doSomething :) withObject : nil afterDelay : 1.0]; 여전히 같은 오류 – user349302

+0

'peformSelector : withObject : afterDelay :'... (사용할 수 없을 때 객체를 취하는 셀렉터를 가질 필요가없는 것처럼 보이는 간단한 테스트 코드를 참조하십시오. 이것은 확인하기 위해 빠른 테스트를 작성해야했습니다). – Dad

0

자기 아직 주위에 있습니까? NSZombie에게 메시지를 보내려는 것일 수 있습니다.