4

Objective-CでNSRunLoopを使用し、変数が値を変更するのを待つ方法を使用する方法は?

ありがとう

4

2 に答える 2

5

通常、本番環境で変数が変更されるのを待つために NSRunLoop を使用することはありません。コールバックを使用できます。

ただし、単体テスト コードには次のようなものがあります。

NSDate *twoSecondsFromNow = [NSDate dateWithTimeIntervalSinceNow:2.0];
    while (!callBackInvoked && !errorHasOccured && runCount-- &&  [[NSRunLoop currentRunLoop]  runMode:NSDefaultRunLoopMode beforeDate:twoSecondsFromNow]) {
        twoSecondsFromNow = [NSDate dateWithTimeIntervalSinceNow:2.0];
    }

コードは、コールバックが呼び出されるか、エラーが発生するか、待機した 2 秒の期間が発生するまで待機します。これを使用して、コールバックを行うデリゲートをテストします。

私が言ったように、私はこれを本番コードでは行いません。

于 2009-12-07T09:09:52.350 に答える
1

NSRunLoop通常、コードで直接使用することはありません。

たとえば、GUIすでに含まれているアプリケーションを作成しますNSRunLoop(で事前定義されたアプリケーションコードテンプレートを使用しますXcode)。

変数が何を変更するかによって異なります。「Model」オブジェクト内のどこかにある可能性があり、オンラインで到着するデータや、GUIオブジェクトにリンクされてユーザーが実行したアクションなどによって変更されます。

  • ボタンの場合は、アクションを呼び出すハンドラーを設定します。
  • 可変の場合は、変更を検出してハンドラーを呼び出すようにKVC/KVOを設定します。

など、Cocoaグルーコードを処理します。アクションを実行するには、適切な処理を設定する必要があります。

あなたの質問には十分な詳細がありません。開発者がCocoaで利用できるものを確認するために、Appleのサイトにあるいくつかの基本的なチュートリアルを参照することをお勧めします。

于 2009-12-07T06:31:58.517 に答える