-3

重複
の可能性: runloop が実際にどのように機能するか

やあ

以前にこの 2 つの質問をしましたが、まだわかりません。

Runloops に関する質問1 Runloops
に関する質問 2

私のiPhoneブックの1つで、実行ループについて次のように言及しています。

「あなたのアプリケーションは、実行ループと呼ばれる 1 つの巨大な無限ループです。実行ループの仕事は、入力 (タッチ、Core Location の更新、ネットワーク インターフェース経由のデータなど) をチェックし、そのイベント (オブジェクトのアクションやデリゲート メソッドなど) に適したハンドラーを見つけることです。」</ p>

では、ループは正確にはどこにあるのでしょうか。メイン アプリケーション スレッドで実行する必要がなく、すべてのスレッドに実行ループ オブジェクトが関連付けられていることはわかっていますが、実際のループ部分はどこにありますか? main-method を非表示で囲んでいるのは while ループですか? ループしていたループがすべてのコードをループしていない場合。私はこれが間違っていることを理解していますが、それは行われていません。

ランループが実行できるさまざまなモードもわかりませんが、ランループを理解していないためかもしれません。

前もって感謝します!

4

1 に答える 1

4

iPhone (または任意の Cocoa、しかし適切な Cocoa は UIApplicationMain の代わりに NSApplicationMain を使用) アプリケーションの典型的な「main()」関数を見てみましょう。

#import <UIKit/UIKit.h>

int main(int argc, char *argv[]) {

    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    int retVal = UIApplicationMain(argc, argv, nil, nil);
    [pool release];
    return retVal;
}

これはアプリケーション全体です。この main() ルーチンには異常な部分や「ラップされた」部分はありません。したがって、論理的には、実行ループは UIApplicationMain の呼び出しに含まれていると結論付けることができます。

于 2011-02-20T10:48:01.493 に答える