iOS 用10行代码实现购物车缓存

作者: 来自蒙塔基的钢蛋儿 | 来源:发表于2016-04-05 10:47 被阅读1618次

    <原创>

    需求:
    1.购物车缓存商品勾选数量.(这一个需求当然也是我自己加的...).
    限制:
    1.时间不允许采用数据库,或者其他持久化方式(当然是我懒...).

    实现:
    接下来 贴出要使用到的演示代码,和实现代码.

    jianshu1.png

    这里调用我传入的是 &data 因为&是取地址嘛,具体传&标示什么意思有不明白的可以回去读读C我在这就不过多解释了,不是主题.(其实我也说不明白!).

    jianshu2.png

    这里是关键的实现部分了.

    原理:
    实现原理其实特别简单,从前有一个单例, 单例里面有一个

    NSMutableDictionary
    这个 NSMutableDictionary 就是我们用来做缓存的工具,其实我有试过NSCache为什么用这个?(可能是用这个看起来比较牛逼).
    但是NSCache 虽然会有一些好处,但是给我项目带来的弊端也是明显的,它是apple提供的缓存策略,可以限制缓存 数量,或者限制缓存的 容量.但是如果限制了,在内存较高的时候释放一部分缓存.当前控制器如果还在引用此缓存当中的对象 那么对象已经被释放了,所以很结果尴尬了.(当然这个问题是可以解决的,暂时先不去管它).因为 其实他们使用起来都是差不多的,原理也类似.

    真正的原理:
    1.第一次请求数据,缓存到 cache 中,然后每次我们增加某一个商品数量,其实修改的是cache当中单条数据的数量.
    2.第二次请求数据,去Cache 中查找是否存在此次缓存,如果存在,那么替换当前请求的返回数据,(当然这里可以直接获取缓存数据,网络请求都不用跑了.真是牛逼,流量都省了.真是个天才).
    3.第三次请求数据,去Cache中查找数据,如果不存在 那么-> 1步.

    其实真正起作用的代码不到10行,原理非常简单,会iOS 的都能读懂.

    转载请注明出处,喜欢请给我个星,鼓励我继续研究奇淫技巧.!
    如果有新的好点子,改进欢迎指正.交流技术,分享装13技巧.

    相关文章

      网友评论

      本文标题:iOS 用10行代码实现购物车缓存

      本文链接:https://www.haomeiwen.com/subject/xzrplttx.html