2012-06-15 3 views
1
[NSThread detachNewThreadSelector:@selector(colourChange) toTarget:del withObject:nil]; 

이 클래스는 'delegate (del)'클래스에서 colourChange 메서드를 호출해야하지만 그렇지 않습니다?호출 선택기가 별도 스레드에서 대리자 메서드를 호출하지 않습니다.

나는 델! = nil을 체크했는데, 디버거를 사용하여 델리게이트를 가리키는 지 검사했다.

dispatch_async(dispatch_get_global_queue(0, 0), 
          ^{ 
           [del colourChange]; 
          }); 

확인 자세한 내용은 아래에 표시된 대답에있는 링크로 결심했다. 당신이

+0

del이 0이 아닌지 확인하십시오. 여기에 일부 코드도 게시하십시오. –

+0

어떤 코드를 원하십니까? colourChange 메서드는 단순히 - (void) colourChange입니다. – geminiCoder

답변

0

는 지금까지 내가하는 방법이 바로 그것으로. (답 포함) This 질문 생성 된 스레드에서 호출 할 수 있습니다 (코어 데이터에서) 알고 유용 할 수 있습니다. 인수는 하나만 사용해야합니다 (documentation 참조).

메시지를 대상으로 보낼 선택자입니다. 이 선택기는 에 하나의 인수 만 가져야하며 반환 값을 가져서는 안됩니다.

+0

건배, 나는 그것을 GCD를 사용하여 작동 시켰습니다. 그 링크는 환상적입니다. – geminiCoder

+0

효과가 있으면 기쁘게 생각합니다. 나 자신도 GCD & 블록을 가장 좋아한다. – ilhnctn

+0

@ilis : 첫 번째 문장은 의미가 없다. Objective-C 메소드는 작성되지 않고 특정 스레드에 바인드되지 않습니다. – Codo

0

귀하의 방법이 잘못된 서명이에 대한

관련 문제