[iOS] 不要緩存網路資料
原以為已經解決AFNetworking會暫存資料的問題,第二次驗收還是被資安公司給退件,那麼只好使出一勞永逸的絕招!就是讓整個App網路資料都不要暫存資料,也就是說不只是針對AFNetworking,設定NSURLCache就能做到!透過模擬器追蹤Cache資料夾,打開Cache.db查看真的不再暫存撈回來的資料。
可以看到追蹤模擬器資料夾會有個Cache.db。
原以為已經解決AFNetworking會暫存資料的問題,第二次驗收還是被資安公司給退件,那麼只好使出一勞永逸的絕招!就是讓整個App網路資料都不要暫存資料,也就是說不只是針對AFNetworking,設定NSURLCache就能做到!透過模擬器追蹤Cache資料夾,打開Cache.db查看真的不再暫存撈回來的資料。
可以看到追蹤模擬器資料夾會有個Cache.db。
最近在研究iOS實用的ORM (Object-Relational Mapping),翻成中文就是物件關係對映,還不是很懂?直接說是資料庫 (Database),這樣豁然開朗了嗎?儘管實際上定義有所差異,不過為了好上手,總是會想類比我們熟悉的目標。
要研究總有個方向,在Github上找到最多人給星的FMDB,發展至今已經有9852顆星,想必它之所以受到青睞,是因為它把資料庫的事情簡單化了!
FMDB是架構在SQLite發展出來的套件,由於SQLite在iOS上的使用不是平易近人,於是就有人想要改造它,促使今日FMDB的誕生呢!
為了儲存更多的資料,我們難免會在Core Data上增加Attribute,甚至為了方便管理資料庫,我們會分割單一Table為多個Table,而最簡單的Core Data Lightweight Migration,只要在某個method中加入幾行程式碼即可運作。
– (NSPersistentStoreCoordinator *)persistentStoreCoordinator
維基百科這麼介紹Core Data:
簡單的說,Core Data就是可以儲存到磁碟的物件圖,Core Data可以幫我們做很多工作,它可以作為軟體的整個模型層。它不僅僅在磁碟上儲存資料,也把我們需要的資料物件讀取到記憶體中。—Marcus Zarra,Core Data
Core Data是Mac OS X中Cocoa API的一部分,首次在Mac OS X 10.4 Tiger與iOS 3.0系統中出現。它允許按照實體-屬性-值 (EAV)模型組織資料,並以XML、二進制檔案或SQLite資料檔案的格式將其序列化。Core Data允許使用者使用代表實體和實體間關聯的高層物件來運算元據。它也可以管理序列化的資料,提供物件生存期管理與object graph管理,包括儲存。Core Data直接與SQLite互動,避免開發者使用原本較複雜的SQL語句。
就像Cocoa繫結在模型-檢視-控制器 (MVC)設計中做了很多控制器的工作一樣,Core Data做了很多資料模型的工作。它的主要任務是負責資料更改的管理,序列化到磁碟,最小化記憶體佔用,以及查詢資料。
HappyMan・迴響