iCloud コンテナからアプリのキャッシュ ディレクトリにファイルをコピーしようとしています。ログに記録され続けThe operation couldn’t be completed. (Cocoa error 512.)
ます。これは非常に広範なエラーを意味NSFileWriteUnknownError
します。または、書き込みに失敗し、iOS が理由を認識していません。
NSMetadataQuery
が終了し、iCloud にファイル名がある場合のコードを次に示します。以下のコードを簡単に説明します。
- (void)loadData:(NSMetadataQuery *)query {
NSArray *cache = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:[cacheDirectory stringByAppendingString:@"/issues"] error:NULL];
for (NSMetadataItem *item in [query results]) {
NSURL *name = [item valueForAttribute:NSMetadataItemURLKey];
NSString *nameString = [item valueForAttribute:NSMetadataItemPathKey];
NSError *error;
NSURL *cacheURL = [NSURL fileURLWithPath:cacheDirectory];
NSURL *destination = [cacheURL URLByAppendingPathComponent:[NSString stringWithFormat:@"issues/%@", [[nameString stringByDeletingLastPathComponent] lastPathComponent]] isDirectory:YES];
[[NSFileManager defaultManager] copyItemAtURL:[name URLByDeletingLastPathComponent] toURL:destination error:&error];
}
}
}
このアプリは、新聞の問題を同期します。iCloud ドキュメント コンテナには、データを含むフォルダがあり (1 つのフォルダは)、各フォルダ内には同じ名前5.1.12
の PDF ファイルがあります( )。5.1.12.pdf
なぜこれが起こっているのですか?ご協力いただきありがとうございます。
iCloud: file://localhost/private/var/mobile/Library/Mobile%20Documents/AppBundleID/Documents/5.3.12/
Local: file://localhost/var/mobile/Applications/F91E115B-ECED-403E-AB61-41F7A99EF928/Library/Caches/issues/5.3.12/