나는 여전히 Objective C 구문에 익숙하지 않으므로 이것을 복잡하게 만들 수도 있지만 스레드에 NSTimeInterval을 전달하는 방법을 생각할 수 없습니다.object 매개 변수를 사용하여 detachNewThreadSelector에 NSTimeInterval 객체를 전달하는 방법은 무엇입니까?
나는 다음과 같이 메인 스레드에서 보낸 x 초 매개 변수에 잠 스레드 시작하려면 :
[NSThread detachNewThreadSelector:@selector(StartServerSynchThread) toTarget:self withObject:5];
- (void) StartServerSynchThread:(NSTimeInterval *)sleepSecondsInterval {
[NSThread sleepForTimeInterval:sleepSecondsInterval];
}
을하지만 컴파일러는 나에게 구문 오류를주는 유지합니다. 정확히 어떻게해야하는지 잘 모르겠습니다. 어떤 도움을 주시면 감사하겠습니다. 감사!
감사하지만,있는 NSDate 옵션은 해킹처럼 많이 보인다 :) 당신이
NSNumber
(NSValue
의 서브 클래스)에 NSTimeInterval를 상자 경우, 당신은 대신에 그것을 전달할 수 있습니다 나에게. NSValue 솔루션을 게시하기에 충분히 친절하십니까? 위의 코드를 실행하려고하면 런타임 오류가 발생합니다. *** 'NSIhvalidArgumentException'이라는 캐치되지 않은 예외로 인해 응용 프로그램을 종료하는 중 '*** - [NSThread initWithTarget : selector : object :] : target은 selector (*** - [MainScreenController StartServerSynchThread])를 구현하지 않습니다. ' – Yousef
@Ya 당신은 메소드 이름의 끝에':'을 잊었습니다. –