<原创>
需求:
1.购物车缓存商品勾选数量.(这一个需求当然也是我自己加的...).
限制:
1.时间不允许采用数据库,或者其他持久化方式(当然是我懒...).
实现:
接下来 贴出要使用到的演示代码,和实现代码.
这里调用我传入的是 &data 因为&是取地址嘛,具体传&标示什么意思有不明白的可以回去读读C我在这就不过多解释了,不是主题.(其实我也说不明白!).
这里是关键的实现部分了.
原理:
实现原理其实特别简单,从前有一个单例, 单例里面有一个
NSMutableDictionary
这个 NSMutableDictionary 就是我们用来做缓存的工具,其实我有试过NSCache为什么用这个?(可能是用这个看起来比较牛逼).
但是NSCache 虽然会有一些好处,但是给我项目带来的弊端也是明显的,它是apple提供的缓存策略,可以限制缓存 数量,或者限制缓存的 容量.但是如果限制了,在内存较高的时候释放一部分缓存.当前控制器如果还在引用此缓存当中的对象 那么对象已经被释放了,所以很结果尴尬了.(当然这个问题是可以解决的,暂时先不去管它).因为 其实他们使用起来都是差不多的,原理也类似.
真正的原理:
1.第一次请求数据,缓存到 cache 中,然后每次我们增加某一个商品数量,其实修改的是cache当中单条数据的数量.
2.第二次请求数据,去Cache 中查找是否存在此次缓存,如果存在,那么替换当前请求的返回数据,(当然这里可以直接获取缓存数据,网络请求都不用跑了.真是牛逼,流量都省了.真是个天才).
3.第三次请求数据,去Cache中查找数据,如果不存在 那么-> 1步.
其实真正起作用的代码不到10行,原理非常简单,会iOS 的都能读懂.
转载请注明出处,喜欢请给我个星,鼓励我继续研究奇淫技巧.!
如果有新的好点子,改进欢迎指正.交流技术,分享装13技巧.