0

問題

単体テストを実行します。ある時点で、私は以下を使用して待機します。

[[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:1]];

NSOperationQueueが空になるようにします。私のアプリがこの行に達すると、すぐに終了します。他のテストとまったく同じ行を実行します。最近、すべてのテストが完全に機能していました。また、起動時にアプリがすぐに終了することもあります。

一体何が起こっているのですか?

4

1 に答える 1

0

他の人が同じ問題に遭遇した場合に備えて、これを投稿して回答を提供しました。これに1日を費やし、gitの素晴らしさのおかげで、ようやく問題を突き止めました。

追加した:

-(BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)sender {
    return YES;
}

ウィンドウを閉じたときにアプリを終了させたかったので、アプリデリゲートに追加しました。これが明らかにランダムな終了の原因であることが判明しました。

起動時にウィンドウを非表示にしているので、これがアプリの即時終了の原因であるとしか考えられませんが、実際のアプリの起動時に毎回発生するわけではありません。

私はそれがその単体テストで一貫して終了していたことを知っているので、それはこのコードまたは私のテストと関係があると思いました。そうではありませんでした。

上記の行を削除しましたが、すべてが期待どおりに機能します。

于 2010-09-03T00:11:23.023 に答える