zoukankan      html  css  js  c++  java
  • 缓存

    http://www.jianshu.com/p/ce5e7427e740

    自定义设置时间戳缓存

     static func set<T>(key: String, value: T, timeout: Double = 0) {

            objc_sync_enter(lock)

            let saveValue: [String: Any] = [

                "saveTime" : timeout == 0 ? 0 : NSDate().timeIntervalSince1970 + timeout,

                "data" : value

            ]

            self.value[key] = saveValue

            objc_sync_exit(lock)

        }

        

        static func get<T>(key: String) -> T? {

            objc_sync_enter(lock)

            let t = _T<[String: Any]>.cast(self.value[key])

            if t != nil {

                let cacheTime = (t!["saveTime"] ?? 0) as! Double

                if cacheTime > 0 && NSDate().timeIntervalSince1970 > cacheTime {

                    self.value.removeValueForKey(key)

                }

            } else {

                return nil

            }

            objc_sync_exit(lock)

            return t!["data"] as? T

        }

  • 相关阅读:
    ACM-生化武器
    ACM-Antiprime数
    ACM-寻宝
    ACM-小偷的背包
    ACM-吴奶奶买鱼
    ACM-挑战题之排列生成
    ACM-数细胞
    ACM-售货员难题
    学习《linux》课程
    MATLAB 求圆形面积
  • 原文地址:https://www.cnblogs.com/hazhede/p/5529951.html
Copyright © 2011-2022 走看看