我有一个应用程序,它依赖于一些键值对,其中的值可能会在未来的某个点由于第三方api而改变。顺便说一句,这个应用程序只有在连接到互联网时才有用。如果有任何值发生变化,我不想发布应用程序的新版本--我宁愿这些值是从我的服务器上的webservice/静态xml文件中提取的。只有在遇到错误时,我才需要拉出这些。
有没有一种标准的方法来做到这一点,或者我应该只使用自己的方法?
编辑:我对服务器端技术不是很感兴趣--我认为平面文件就足够了。我感兴趣的是平面文件应该是什么格式,以及如何在遇到错误时将其缓存到我的应用程序中。
发布于 2012-01-27 21:03:54
我找到了适用于我的使用场景的最佳方法:
我在S3上设置了一个需要身份验证的json文件。然后我使用AWS for Objective C进行身份验证,这样我就可以访问该文件。
我决定我只需要在App Delegate中的applicationDidBecomeActive更新本地信息。然后我获得了json async,如果成功,我会检查json中的版本号,如果已经过期,则将更改写入NSUSerDefaults (然后通过应用程序使用这些更改)。如果在获取json文件时出现错误,我只需要继续,因为我已经有了之前的一组NSUserDefaults,它可以完成这项工作,直到用户下一次激活应用程序。
这个解决方案对我来说效果最好,因为它易于维护,即使我的应用很受欢迎,也应该很容易处理负载。
发布于 2012-01-19 17:15:35
试试redis,高性能的键值存储。被一些大型云计算公司使用,比如cloudfoundry。看看http://redis.io/吧。Objective-c客户端可在http://redis.io/clients上获得。
发布于 2012-01-19 16:57:55
你有没有考虑过使用iCloud?它支持键值对。更多信息请点击此处:http://developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/iCloud/iCloud.html
https://stackoverflow.com/questions/8923310
复制相似问题