什么是创建sqlite文件的合适位置?

时间:2012-03-20 09:36:11

标签: iphone sqlite

实际上,我的应用程序被app Store拒绝了,因为我在文档目录中存储了大约9 MB的数据。

什么是更好,更合适的位置存储图像缓存和创建sqlite数据库文件?

3 个答案:

答案 0 :(得分:1)

图片缓存 必须进入缓存目录。缓存不应包含在备份中,因为您可以轻松地重新创建这些图像。

如果sqlite文件存储用户数据,则应将其放入文档目录中。它必须包含在设备备份中,因为您无法重新创建它,并且用户在从备份恢复设备时会丢失所有数据。

如果sqlite文件是从Web下载的,并且用户永远不会更改它,也将其放入缓存目录中。在iOS 5.0.1及更高版本中,您可以将该文件放入文档目录并设置"Do not backup"-Attribute。但是,在iOS 5.0或更早版本的设备上,您必须将该文件放在缓存目录中。

NSString *cacheDirectory = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];

答案 1 :(得分:1)

关注区域是iOS 5.0,它支持iCloud,但不识别“不备份”属性。在这种情况下,文档目录中的应用程序的所有数据都可能会备份到iCloud。对于5.x以下的iOS版本:

the iCloud backup is not valid.
the "do not back up" flag is not relevent. It would not produce any warnings during compilation.

因此,数据可以保存在文档目录中,对于所有版本,“不备份”标志适当地添加到内容(文件/文件夹)中。问题仅在于5.0版本。

答案 2 :(得分:-1)

如果您的应用程序中有大量图像,则在任何图像存储站点中存储图像并使用图像链接。它对你更好。