0

実行時に、私のアプリはいくつかの大きなビデオ ファイルをダウンロードして再生します。それらは大きいため、システムがメモリを回復しようとしていつでも消去される可能性があると思います。

使用に問題がありました[fileManager fileExistsAtPath: pathOfVideo]

次に、ファイルが存在するかどうかを判断するために使用すべきではないという答えを見つけました。-fileExistsAtPath

推奨される解決策は、ファイルを開いて、開くことができないかどうかを確認することです。30MBのファイルでも?ここでは、競合状態についてはそれほど心配していません。ファイルはサーバーからダウンロードされ、MediaPlayer で再生されます。fileExistsAtPath を使用する代わりに、30MB のファイルを開いて存在するかどうかを確認する必要がありますか?

4

3 に答える 3

1

これはあなたを助けるかもしれません

NSDictionary *fileAttributes = [fileManager fileAttributesAtPath:filePath traverseLink:YES];
    if(fileAttributes != nil)
    {
        NSString *fileSize = [fileAttributes objectForKey:NSFileSize];
    enter code here

        NSLog(@"File size: %@ kb", fileSize);
    }
于 2012-05-24T11:06:22.223 に答える
1

競合状態が問題にならない場合は、fileExistsAtPath を使用してください。iOS デバイスのアクセス許可の問題は何ですか?

于 2012-05-24T13:28:39.903 に答える
0

使用しないことをお勧めする理由の説明へのリンクをたどるとfileExistsAtPath(「競合状態と安全なファイル操作」を参照)、iPhone アプリのサンドボックス化を考えると、許容できるリスクである可能性があります。

于 2012-05-24T12:30:03.447 に答える