TMCache + Mantle

最近才發現 Tumblr 開源了 TMCache,這是它們用在 iOS 客戶端的緩存程序,能夠很方便地保存和讀取緩存,線程安全,基本徹底符合我對簡單緩存的需求。只要是實現了 NSCoding 協議的對象,都能保存到磁盤中。git

而 Github 開源的 Mantle,則提供了一系列便捷的方法映射數據到對象:github

  • 使用 MTLManagedObjectAdapterNSManagedObjectMLTModel 能夠互相轉換。
  • 使用 MTLJSONAdapter,JSON 對象和 MLTModel 能夠互相轉換。
  • 基類 MLTModel 實現了 NSCoding 協議, 能夠直接用 NSKeyedArchiver 保存到磁盤,或用 NSKeyedUnarchiver 從新讀取文件到內存中。

這樣一來,讀取服務器接口數據的流程能夠是這樣:緩存

  1. 訪問接口,得到 JSON 數據。
  2. 使用 MTLJSONAdapter 轉換 JSON 數據爲 MLTModel 子類的對象。
  3. 使用 TMCache 保存該對象到緩存中。
  4. 回調請求數據的對象。
  5. 下次再請求數據時,請求 TMCache 得到緩存。

同時使用這兩個項目的話,能夠大大地簡化保存緩存的工做(總是要想保存在哪裏是一件很頭疼的事)。可是對於須要讀取大量數據的應用,仍是須要配合 Core Data 一塊兒用,不然性能會是個問題。安全

相關文章
相關標籤/搜索