0

didFinishLaunchingWithOptions: メソッドの XCode でインタラクティブにコードをステップ実行していますが、この疑似コードの最後の行で約 4 秒間一時停止していることに気付きました。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

  ...
 create and initialize model
 ...
create UIViewController
create navController with view controller

self.window.rootViewController = navController;

navController はその名前のとおり、UINavigationController を意味します。

Xcode を使用してステップスルーするときに、この特定の行で一時停止するのはなぜですか?

モデルを didFinishLaunchingWithOptions: で初期化していますが、作成時にスキャンするモデルのデータ オブジェクトが非常に多い場合に動作をテストしているのはおそらく偶然ではありません (ファイルをスキャンし、それらを読み取り、オブジェクトを作成するため、動作が遅くなる可能性があります)。ファイルがたくさんあります)。現時点では、モデルの初期化は同期的であり、非同期にする必要があるかどうかを判断するのにどれくらいの時間がかかるかを確認しており、そのときにこの動作に気付きました。

モデルの構築に時間がかかり、それが原因で IDE で遅延が発生している場合、モデルの構築時ではなく rootViewController の設定時にこの遅延が発生するのはなぜですか?

私の質問が何であるかを明確にするために:

  • コードが遅い理由を尋ねているわけではありません

  • 遅いコードの場所を追跡する方法を尋ねているのではありません

  • 私が興味を持っているという理由だけで、ウィンドウの RVC への割り当てでデバッガーのコードを対話的にステップスルーするときに、モデルの初期化が遅い場合にそれが明らかになるのはなぜですか。

4

1 に答える 1

0

Instrumentsこのような問題を追跡してみてください。

于 2013-01-07T22:38:58.060 に答える