Objective-C에서 nsrunloop를 사용하는 방법은 무엇입니까?
-
13-09-2019 - |
문제
Objective-C에서 NSRUNLOOP를 사용하고 값을 변경할 수있는 변수를 기다리는 방법은 무엇입니까?
감사
해결책
우리는 일반적으로 생산에 nsrunloop를 사용하여 변수가 변경 될 때까지 기다리지 않습니다. 콜백을 사용할 수 있습니다.
그러나 단위 테스트 코드에는 다음과 같은 것이 있습니다.
NSDate *twoSecondsFromNow = [NSDate dateWithTimeIntervalSinceNow:2.0];
while (!callBackInvoked && !errorHasOccured && runCount-- && [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:twoSecondsFromNow]) {
twoSecondsFromNow = [NSDate dateWithTimeIntervalSinceNow:2.0];
}
코드는 콜백이 호출되거나 오류가 발생하거나 기다렸던 2 초 기간 수가 발생할 때까지 기다립니다. 우리는 이것을 사용하여 콜백을하는 대의원을 테스트합니다.
내가 말했듯이 생산 코드에서는 이것을하지 않을 것입니다.
다른 팁
일반적으로 사용하지 않습니다 NSRunLoop
코드에서 직접.
당신은 예를 들어 만들 것입니다 GUI
이미 가지고있는 응용 프로그램 NSRunLoop
(사전 정의 된 응용 프로그램 코드 템플릿을 사용하십시오 Xcode
).
변수가 변경되어야하는 변수에 따라 달라지며 '모델'객체 안에 어딘가에있을 수 있으며 온라인으로 도착하거나 GUI 객체 및 사용자 수행 작업에 링크 된 데이터와 마찬가지로 변경됩니다.
- 버튼 인 경우 작업을 호출하도록 핸들러를 설정합니다.
- 가변적 인 경우 변경 사항을 감지하고 핸들러를 호출하기 위해 KVC/KVO를 설정합니다.
등등, Cocoa
접착제 코드를 처리하면 작업을 수행하기 위해 적절한 처리 만 설정하면됩니다.
귀하의 질문에는 충분한 세부 사항이 없습니다. 기본을 살펴 보는 것이 좋습니다. 개발자를위한 Apple 사이트의 튜토리얼 코코아에서 무엇을 사용할 수 있는지 확인합니다.
제휴하지 않습니다 StackOverflow