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
)。
変数が何を変更するかによって異なります。「Model」オブジェクト内のどこかにある可能性があり、オンラインで到着するデータや、GUIオブジェクトにリンクされてユーザーが実行したアクションなどによって変更されます。
など、Cocoa
グルーコードを処理します。アクションを実行するには、適切な処理を設定する必要があります。
あなたの質問には十分な詳細がありません。開発者がCocoaで利用できるものを確認するために、Appleのサイトにあるいくつかの基本的なチュートリアルを参照することをお勧めします。