1

私は、ユーザーが音声を (特に) アプリの Documents ディレクトリに録音できるようにするアプリに取り組んでいます。しかし、音声を録音するときは、アプリの caches ディレクトリに録音し、ユーザーが「わかりました、これを保存してください」と言った後、Documents ディレクトリにコピーしています。これまでのところ、これらはすべて機能します。しかし、キャッシュ内のデータ ファイルを削除しようとしたり、移動しようとすると、問題が発生します。

だから私の質問は、iOSがそれを処理できるようにデータをキャッシュに残しておくか、キャッシュ内のファイルを手動で削除する必要があるかということです。もしそうなら、どうすればそれを行うことができますか。これは私がこれまでに持っているコードです(動作しません)

    NSFileManager *fm = [NSFileManager defaultManager];
    NSString *directory = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
    NSError *error = nil;
    BOOL success = [fm removeItemAtPath:[NSString stringWithFormat:@"%@%@", directory, currentEntry.audioFileURL] error:&error];
    if (!success || error) {
        // it failed.
        NSLog(@"it failed to delete!!! %@ %@", error, [error userInfo]);
    } else {
        NSLog(@"Deleted... yipee... !!!");
    }
4

1 に答える 1

6

問題は、パスが正しくないことだと思います。常に使用する

- (NSString *)stringByAppendingPathComponent:(NSString *)aString

の方法NSString

今得たパスを印刷してみることができます (バックスラッシュが抜けている可能性があります) が、とにかく、説明した方法を使用する必要があります。

UPD: もう 1 つのことは、NSCachesDirectory実際には決してクリーンアップされないことです。NSTemporaryDirectory()自動洗浄したい場合に使用します。

于 2011-05-23T18:24:01.487 に答える