1
cdffh 2014-11-07 17:20:22 +08:00
android同求。现在是在本地放了一个sqllite数据库,做数据同步。两套数据读取逻辑蛋疼。
|
2
jseanj 2014-11-07 17:25:08 +08:00
RestKit包含一整套方案,从数据请求,映射,存储,如果app不大会有些重。主要看你app的数据量级别。
|
3
xudshen 2014-11-07 17:27:01 +08:00
|
4
bzmario 2014-11-07 17:28:02 +08:00
https://github.com/Mantle/Mantle + NSKeyedArchiver
|
6
kinoAndWorld 2014-11-07 17:33:13 +08:00
碰到熟人纯支持→_→
可以先选成本最小的一种,用一段时间试试。 毕竟实践是检验真理的唯一标准嘛 |
12
jianzong OP @kinoAndWorld 是的,储存、网络交互分层的话,以后更换的代价也比较小。现在主要想找个比较合适的方案开始。
|
14
yellowV2ex 2014-11-09 10:31:47 +08:00 1
我是把网址和参数组成一个key,然后把读到的内容value存进去,读的时候先读上次缓存的结果,同步读取网络,如果有不同则立即更新界面,因为是统一接口,所以全局网络读取都自动有了缓存机制。
|
15
jianzong OP @yellowV2ex 这个方法好!简单易用,很合适!
|
16
errun 2014-11-14 15:35:20 +08:00
@yellowV2ex 你好,请问你这个方案中,缓存是用什么做的呢?
|
17
yellowV2ex 2014-11-14 18:15:51 +08:00
@errun 离线或网路不好的时候,打开起码有点东西看,一直显示个loading觉得不是很友好,当然,你也可以设置时间,比如3天后才再去读取网络。
总好过每次打开就去请求才有内容看。 |
18
yellowV2ex 2014-11-14 18:32:41 +08:00
@errun 不好意思,我看成你问 缓存是做什么用的。。。
我之前本来是自己写了一个,但多个项目改来改去加了好多没用的东西,想重写的时候看到这个 http://blog.devtang.com/blog/2014/10/03/opensouce-a-key-value-storage-tool/ 就用了这个。 大概就是一个key,存到本地的sqlite里,升级应用也不会丢失,因为只有key和value还有时间,你可以把key的名字稍微起的复杂些方便检索,再加上分开不同的表,基本满足大部分日常应用了。 其实也不一定用sqlite,随便什么能存个key和内容就可以了 |
19
zsk425 2014-11-28 10:47:26 +08:00
我也一直在关注这个问题,不知道缓存是否可以完全依赖HTTP机制,仅用NSURLCache搞定。有没有同学了解这个?
|
20
jianzong OP @zsk425 可以,经过这个问题的讨论和我后来的研究,分享一下:
通过NSCache可以解决大部分缓存问题,因为必须由服务器来决定资源的缓存时间。 怎样设计良好的Restful api,涉及REST的基础原理以及不同资源的缓存机制,强烈建议阅读。 http://blog.mugunthkumar.com/articles/restful-api-server-doing-it-the-right-way-part-1/ 客户端使用afnetworking的话,图片资源自动使用NSCache进行缓存,其他资源也容易配置,客户端可以参考这篇文章: http://blog.originate.com/blog/2014/02/20/afimagecache-vs-nsurlcache/ 需要注意的是,要调用NSCache,服务器必须返回cache-control header,来让NSCache决定缓存多久。 恰好我现在做的app用到七牛的cdn,七牛返回的请求已经配置了cache-control header,所以ios端我使用UIImageView + AFNetworking,图片就自动缓存了。 |
22
jianzong OP 写了一篇blog post来总结我的解决方案,有兴趣可以点来看,http://www.haojianzong.com/coding/ios/ios-cache.html
|
23
foxling 2014-12-23 21:55:58 +08:00
AFNetworking 自带缓存了,只不过你得使用适合的 NSURLRequestCachePolicy
如果是图片的话,SDWebImage |