首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何理解iOS“文档和数据”(与云备份相关)

如何理解iOS“文档和数据”(与云备份相关)
EN

Stack Overflow用户
提问于 2014-06-19 18:55:32
回答 1查看 383关注 0票数 0

我的应用程序被苹果拒绝了,因为他们说它不遵循"iOS数据存储指南“。

我已经用下面的代码更新了这个应用程序,以标记下载的内容,这样它就不会被备份到云端.

代码语言:javascript
复制
- (BOOL)addSkipBackupAttributeToItemAtPath:(NSString *)filePathString {
    NSURL *fileURL = [NSURL fileURLWithPath:filePathString];

    NSLog(@"Going to add skip attribute to " @"%@", filePathString);

    assert([[NSFileManager defaultManager] fileExistsAtPath: [fileURL path]]);

    NSError *error = nil;

    BOOL success = [fileURL setResourceValue:[NSNumber numberWithBool: YES]
                                      forKey: NSURLIsExcludedFromBackupKey
                                       error: &error];
    NSLog(@"Added skip attribute to " @"%@", filePathString);

    return success;
}

但是,当我检查“设置”( Settings -> General -> Usage -> MyApp )时,它将“文档和数据”显示为>30 as。从下载到应用程序的30 up内容来看,这是正确的,但这是否也意味着这30 up将被备份到云上?

换句话说,如果我将文件标记为不被备份,那么它们会被包含还是被排除在“文档和数据”值之外?

干杯!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-19 19:12:47

用户创建的或对用户来说是私有的、不能只是消失的数据应该在Documents目录中。此外,对用户有价值且无法重新创建的数据应该位于Documents目录中。文档目录中的文件将自动备份到iCloud。

从互联网下载的数据应该保存到缓存目录中,因为可以轻松地重新下载,因此将它们保存到iCloud中是没有意义的。数据只会占用iCloud中的空间。如果用户需要恢复他的设备,应用程序可以直接从任何地方下载数据。如果硬盘上的空闲空间非常少,操作系统就可以删除缓存目录。

有一个特殊情况,即文件保存在Documents目录中,并设置了NSURLIsExcludedFromBackupKey标志。这是为了提供对用户有价值的数据,这些数据应该随时可用,即使在没有互联网连接的情况下也是如此,但另一方面,这些数据可以在需要时轻松地重新下载或更新。

iCloud备份中包含的是文档目录的内容,不包括设置了NSURLIsExcludedFromBackupKey标志的文件。所有位于应用程序容器内的其他目录都没有备份。

设置中的“文档和数据”引用文档文件夹的大小。如果从iCloud备份中排除了任何内容,则计算没有考虑。大小不引用iCloud备份中数据的大小。但是,如果Settings.app表示“30 if”,则可以确保iCloud备份至少不会大于30 if。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24314294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档