Nav*_*ved 50 iphone objective-c in-app-purchase ios5
我已经通过将目标iOS保持为4来为我的客户端创建了一个应用程序.
但由于该应用程序仍未提交给Apple商店,我的客户端计划将其升级到iOS 5.0.
为此,我阅读了Apple的指南,发现"只有用户生成的数据或者应用程序无法重新创建的数据应存储在/ Documents目录中,其余部分应存储在/ Library/Caches目录中"
在我的应用程序中,我正在使用针对非消费品的应用程序内购买的服务器模型.为此,我将所有下载的数据(基本上是书籍或杂志)存储到Documents目录中.数据库也存在于同一目录中,该目录包含有关下载产品的详细信息.
我的问题是,
1.我是否必须更改我的代码以将下载的数据存储到Library/Caches目录而不是Documents目录?
2.我的数据库文件应该放在哪里(到文档或缓存)?
如果我把它放在缓存中,那么我也必须改变检索的逻辑,因为如果记录存在于数据库中,则不需要改变文件的存在,并且当用户点击时它直接打开它该杂志.
请指导我这个问题.
提前致谢.
更新:
我正在为那些仍然不确定这个问题的人更新这个.
使用已接受答案的指导原则,我已在我的2个应用程序中实现了此功能并将其提交给Apple Store.两者都经过审查批准.
这可能会促使在接受的答案中建议的解决方案是正确的.
Ste*_*ton 58
以下是权衡:
但是,对于iOS 5.0.1,还有第三种选择:
我想这可能是你的最佳答案.
1.我是否必须更改我的代码以将下载的数据存储到Library/Caches目录而不是Documents目录?=是,您需要将下载的数据存储到Library/Caches目录.
2.我的数据库文件应该放在哪里(到文档或缓存)?=您可以将数据库保留在Documents目录中.
我知道的一个应用程序因此被拒绝了.不建议在Documents dir中存储可下载数据.它背后的逻辑是你的数据不应该不必要地膨胀app目录.此应用程序目录在iCloud中备份,因此膨胀的应用程序目录将导致更多数据保存在iCloud中.
如果可以再次下载数据,如杂志,书籍pdf等.然后将其保存在Caches目录中.当然,您可以在Documents目录中存储指向数据的指针(如URL等),以便用户以后可以检索它们.
回答你的问题:
你必须添加代码来检查数据库中的文档是否存在于缓存中,如果它不是你的应用程序应该再次下载它.