資料持久,資料共享

2021-05-23 19:09:06 字數 2385 閱讀 5616

1.四種高階資料持久方式:屬性列表,物件歸檔,嵌入式關聯式資料庫sqlite3、coredata.

2.應用程式的沙盒:

每個應用程式都有自己的documents資料夾,並且僅能讀取各自的documents目錄中的內容.

目錄下,所有應用程式可讀寫的目錄是./var/mobile/目錄,一般要在這個目錄下再建立應用程式自己的子目錄以讀寫資料.

3.獲取documents目錄:使用foundation函式nssearchpathfordirectoriesindomains.

nsarray* patharray=nssearchpathfordirectoriesindomains(nsdocumentdirectory,nsuserdomainmask,yes);

nsstring* documentspath=[patharray objectatindex:0];

獲取tmp目錄:

nsstring* tmppath=nstemporarydirectory();

4.判斷檔案路徑是否存在

if(  [[nsfilemanager defaultmanager] fileexistsatpath:filepath] )

5.支援屬性列表序列化的類有:

nsarray,nsdictionary,nsdata,nsstring,nsnumber,nsdate.

nsstring* str=[nsstring stringwithcontentsoffile:filepathname encoding:nsutf8stringencoding error:nil];

[str writetofile:filepathname atomically:yes encoding:nsutf8stringencoding error:nil];

7.[nsuserdefaults standarduserdefaults]

預設檔案儲存在應用程式沙盒內部的library/preferences中,呼叫synchronize將立即更新這些預設值。儲存為 com.sadun.$.plist,com.sadun.$是在info.plist中設定的bundle identifier的值。

8. .歸檔

nskeyedarchiver

nskeyedunarchiver

要編碼的物件,必須實現nscoding協議。

nscoding協議宣告了兩個方法,乙個方法將物件編碼到歸檔中,另乙個對歸檔解碼來建立乙個新物件.

nscopying協議宣告了乙個用於複製物件的方法.

在自己的物件中實現 nscoding協議,

- (void)encodewithcoder:(nscoder *)acoder

- (id)initwithcoder:(nscoder *)adecoder }

return self;

}外化物件陣列

[nskeyedarchiver archiverootobject:array  tofile:path];

內化物件陣列

9.nsundomanager 撤銷管理器

undo動作有兩種方式:registerundowithtarget:selector:object: 和 preparewithinvocationtarget。前者傳送帶有乙個引數的訊息,後者使用nsinvocation (用於物件間儲存和**訊息),它可以有任意引數。

處理較大物件時,最好限制級別。

10.core data框架提供了持久資料解決方案。它提供了一種靈活的物件管理基礎架構,

core data 使用內建的 sqlite 資料庫,不需要單獨安裝資料庫系統。

*.sqlite檔案會存放在documents資料夾中。

11.info.plist中也可以新增自定義的鍵值。

12.可以使用剪貼簿實現應用程式之中以及應用程式之間實現資料的共享

在fmdatabaseadditions.m中新增 #import ,解決編譯報 implicit declaration of function 'usleep' 警告的問題。

14.使用uigraphicsbeginpdfpage等方法,將uiview儲存到nsdata中作為pdf檔案資料。

1 6docker資料共享與持久化

1 在 docker 內部以及容器之間管理資料,在容器中管理資料主要有兩種 式 資料卷 data volumes 掛載主機 錄 bind mounts 2 資料卷 資料卷 是 個可供 個或多個容器使 的特殊 錄,它繞過 ufs 可以提供很多有 的性 資料卷 可以在容器之間共享和重 對 資料卷 的修改...

詳解Docker的持久化儲存和資料共享

有些容器會自動產生一些資料,為了不讓資料隨著container的消失而消失,保證資料的安全性。例如 資料庫容器,資料表的表會產生一些資料,如果我把container給刪除,資料就丟失。為了保證資料不丟失,這就有了volume的存在。data www.cppcns.comvolume 結構圖 dock...

資料持久化

資料持久化就是將記憶體中的資料模型轉換為儲存模型,以及將儲存模型轉換為記憶體中的資料模型的統稱.資料模型可以是任何資料結構或物件模型,儲存模型可以是關係模型 xml 二進位製流等。cmp和hibernate只是物件模型到關係模型之間轉換的不同實現。只不過物件模型和關係模型應用廣泛,所以就會誤認為資料...