- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
如何防止文件被备份到iCloud 和iTunes?应用有一些文件需要永久的存储在本地使应用支持离线功能。但是这些文件并不包含用户数据,无需备份。如何防止这些文件被备份。在iOS上,应用负责确保只有用户数据而不包含应用数据被备份到iCloud和iTunes上。具体的步骤在不同的iOS 版本各有不同。所以对不同的版本进行区分描述。关于具体哪些数据不应该被备份,参见/library/ios/ \l documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/PerformanceTuning/PerformanceTuning.html#//apple_ref/doc/uid/TCH8-SW9 \t \App Backup Best Practices section of the iOS App Programming Guide。?注意:应用应该避免将应用数据和用户数据和在相同的文件中。这样会增加不必要的备份大小并且被认为是违反iOS的数据存储指南。?iOS 5.1 以及更新?从iOS 5.1开始,应用可以使用/library/ios/ \l documentation/Cocoa/Reference/Foundation/Classes/NSURL_Class/Reference/Reference.html#//apple_ref/c/data/NSURLIsExcludedFromBackupKey \t \NSURLIsExcludedFromBackupKey 或 /library/ios/ \l documentation/CoreFoundation/Reference/CFURLRef/Reference/reference.html#//apple_ref/c/data/kCFURLIsExcludedFromBackupKey \t \kCFURLIsExcludedFromBackupKey 文件属性来防止文件被备份。这些API是通过通过旧的,弃用的方式的直接设置额外属性。所有运行在iOS5.1的都应该使用这些API包防止文件被备份。在iOS5 .1上防止文件被备份- (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 %@, [URL lastPathComponent], error); } return success;}?iOS 5.0.1如果你的应用必须支持iOS 5.0.1,你可以使用下面的方式来设置“不要备份”的拓展属性。当你创建无须备份文件或者文件夹时,将数据写入文件然后调用这个方法,传入一个文件URL。?下面的这些代码已经被弃用并只应该使用在iOS5.0.1及更早的版本上。当运行的iOS5.1上时,应用应用使用NSURL和CFURL键来进行描述。在iOS 5.0.1上设置额外属性#import sys/xattr.h- (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL{ assert([[NSFileManager defaultManager] fileExistsAtPath: [URL path]]); const char* filePath = [[URL path] fileSystemRepresentation]; const char* attrName = com.apple.MobileBackup; u_int8_t attrValue = 1; int result = setxattr(filePath, attrName, attrValue, sizeof(attrValue), 0, 0); return result == 0;}?iOS 5.0无法在iOS5.0上防止数据被备份。如果你的应用必须支持iOS5.0,然你需要保持你的应用数据在Caches中来避免数据被备份。iOS将会在不需要的时候删除Caches目录中的数据。所以如果数据被删除
文档评论(0)