NSURLCache使用 二 儲存結構

2021-09-26 14:11:09 字數 1810 閱讀 6857

nsurlcache在使用過過程中,我們大概會有兩種方式:

我們以afn中afimage**********中的自定義diskpath="com.alamofire.image**********"的方式為例,來做一下分析.

2.2.1 nsurlcache的快取以何種形式存在?

我們在nshomedirectory()目錄library/caches//中檢視一下,就會發現有乙個cache.db檔案和fscacheddata的資料夾,證明快取是以資料庫的方式進行了儲存.

2.2.2 nsurlcache中都儲存了哪些資訊?

雖然使用mac自帶的sqlite3工具也可以檢視sqlite資料庫,但是為了更加直觀,我們借助乙個db browser來檢視一下資料庫中的資料.

我們看到資料庫中有五個表,其中

以前兩個表資訊比較簡單,我們不單獨做分析.剩餘的三張表中,有唯一共有的鍵entry_id,所以entry_id應該是資料庫主鍵,用於連線三張表的資訊:

轉化之後的plist檔案大概這個樣子:

所以根據上邊的探索,快取的查到大概會是這個樣子:

在cfurl_cache_response中根據request_key(請求介面,即url)查到entry_id;

在cfurl_cache_blob_data根據entry_id找到response_object;

在cfurl_cache_receiver_data中根據entry_id找到receiver_data.

拼接nscacheurlresponse物件,至此我們就獲取到了nsurlcache中的快取.

儲存過程(二)

可以引用在同一儲存過程中建立的物件,只要引用時已經建立了該物件即可。可以在儲存過程內引用臨時表 不想動基礎表中的資料,從而將這些資料放在臨時表中 如果在儲存過程內建立本地臨時表,則臨時表僅為該儲存過程而存在 退出該儲存過程後,臨時表將消失。如果執行的儲存過程將呼叫另乙個儲存過程,則被呼叫的儲存過程可...

儲存過程使用

謂儲存過程就是transact sql語句的預編譯集合,這些語句在乙個名稱下儲存並作為乙個單元進行處理。由於儲存過程被預先編譯過,所以執行起來要比單行sql語句效率高出很多,在應用程式開發過程中應盡可能的採用儲存過程進行資料的增加 更新 刪除和查詢操作,以提公升應用程式的整體執行效率。執行sql s...

使用SharedPerference儲存資料

使用sharedperference儲存資料 sharedpreferences sp getsharedpreferences info mode private 拿到sp的編輯器 editor ed sp.edit ed.putstring username username ed.putstr...