アプリがファイルを iCloud にバックアップしないようにしようとしていますが、完全に混乱し、少し迷ってしまいました。
-編集-
以下のポスターのおかげで行った変更を反映するために、これを更新しました。
アプリのドキュメント ディレクトリにダウンロードされたファイルのバックアップを防止したい。
PreventBackup
これまでのところ、次のメソッドで呼び出されるクラスがあります。
+ (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL
{
NSError *error = nil;
BOOL success = [URL setResourceValue: [NSNumber numberWithBool: YES]
forKey: NSURLIsExcludedFromBackupKey error: &error];
if(!success){
NSLog(@"Error excluding %@ from backup %@", [URL lastPathComponent], error);
}
NSLog(@"prevent backup method called without error");
return success;
}
アプリの起動時に次のコードで呼び出しています。
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSURL *pathURL= [NSURL fileURLWithPath:documentsDirectory];
[PreventBackup addSkipBackupAttributeToItemAtURL:pathURL];
コソールは印刷されますprevent backup method called without error
が、アプリは以前と同じ量のバックアップ用のデータを保持しているように表示されています。
これがどこで間違っているのか考えていますか?
-編集2-
わかりました、これで解決したと思います。ファイルは「downloads」というサブフォルダーにダウンロードされます。上記のコードを次のように変更すると、うまくいったようです。
NSString *downloadsFolder = [documentsDirectory stringByAppendingPathComponent:(@"/downloads")];
NSURL *pathURL= [NSURL fileURLWithPath:downloadsFolder];
[PreventBackup addSkipBackupAttributeToItemAtURL:pathURL];
ご協力いただきありがとうございます。