我试图阻止我的应用程序将文件备份到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];
cosole打印防止调用的备份方法没有错误,但应用程序仍显示为具有相同数量的数据,以便以前执行备份.
知道这出错了吗?
-EDIT 2-
好的,我认为这已经解决了.文件正在下载到名为“downloads”的子文件夹.更改上面的代码,使其读取如下似乎已成功:
Nsstring *downloadsFolder = [documentsDirectory stringByAppendingPathComponent:(@"/downloads")]; NSURL *pathURL= [NSURL fileURLWithPath:downloadsFolder]; [PreventBackup addSkipBackupAttributetoItemAtURL:pathURL];
感谢大家的帮助.
解决方法
- (BOOL)addSkipBackupAttributetoItemAtURL:(NSURL *)URL { assert([[NSFileManager defaultManager] fileExistsAtPath: [URL path]]); NSError *error = nil; BOOL success = [URL setResourceValue: [NSNumber numberWithBool: YES] forKey: NSURLIsExcludedFromBackupKey error: &error]; if(!success){ NSLog(@"Error excluding %@ from backup %@",error); } return success; } NSURL *documentURLWithExtension = [documentURL URLByAppendingPathExtension:extensionType];
将此“documentURLWithExtension”传递给此函数
[self addSkipBackupAttributetoItemAtURL:documentURLWithExtension];
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。