1

映画のサイズを読み取って幅を取得する単純なコードブロックがあります。

BOOL isHD;
if ([[NSFileManager defaultManager] fileExistsAtPath: filePath]) {
    QTMovie *movie = [QTMovie movieWithFile: filePath error: nil];
    NSValue *movieSize = [movie attributeForKey:QTMovieNaturalSizeAttribute];
    int width = [movieSize sizeValue].width;
    if (width > 1200)
        isHD = YES;
}

私の問題は、このコードを読んだ後、Activity Monitorに「QTKitServer-(PID)」プロセスが残っていることです。このプロセスは、アプリを終了するまで消えません。「映画」は自動リリースされると思いました...ここで何が間違っているのですか?

4

1 に答える 1

1

ご心配なく。このプロセスはQuickTimeXの実装の詳細であるため、クリーンアップするのはユーザーの責任ではありません。あなたのコードは正しいです。

QuickTimeは、このプロセスのサービスが再び必要になると想定し、それを維持します。リクエストごとに新しいプロセスを開始する代わりに、このプロセスを何もしないままにしておく方が、おそらくはるかに安価です。

于 2012-05-19T08:09:10.297 に答える