歸檔與解檔的注意點

2022-08-02 21:03:14 字數 798 閱讀 8826

1.歸檔時的路徑不能越級存放,原因是歸檔時不會將路徑過程中沒有的資料夾建立出來。

正確的寫法:

// 儲存上傳檔案資訊的路徑(caches)

錯誤的寫法:

// 快取主目錄

@"zfcache」]

"uploadcaches.data」]

[nskeyedarchiver archiverootobject:documentuploadfilemodel tofile:uploadcaches];

2.對同乙個資料,多處進行解檔和歸檔操作,處理不當很容易造成,類似於多執行緒訪問同一資料而引起的混亂。

解決方案:

前提-左邊為長迴圈,右邊為突發事件。

關鍵-其實,如果右邊的歸檔發生在左邊的歸檔之後,就不會發生混亂。因此,要解決的就是,突發事件的歸檔已經完成,當時左邊歸檔的物件竟然還是之前解檔時獲得的最初值。

策略-在左邊進行歸檔操作前,將右邊突發事件的修改值,放在左邊的歸檔前。比如,假如下面**:

//歸檔前,需要

documentuploadfilemodel *tempuploadfilemodel =[nskeyedunarchiver unarchiveobjectwithfile:uploadcachesdirectory];

documentuploadfilemodel.uploadpause = tempuploadfilemodel.uploadpause;

iOS 歸檔解檔

開發過程中有時需要儲存一些輕量級的資料,對於ios提供的幾種資料儲存方式在這時最合適當屬物件歸檔 nscoding 但是將物件資料進行歸檔解檔時候需要實現兩個方法 encodewithcoder和initwithencoder。encodewithcoder 編碼 initwithcoder 解碼使...

iOS 歸檔 解檔

1.新建類datacache 歸檔 void cachewithdata id data withfile nsstring file 解檔 id archivewithfile nsstring file 2.使用 儲存路徑 college mouth.arc 在虛擬機器上,簡單的寫可以找到路徑,...

ios 歸檔解檔

如果你想讓儲存乙個自定義的物件,你就要讓這個自定義的物件去遵守這個協議,而且我們要在.m檔案中重寫 void encodewithcoder nscoder acoder 方法來告訴歸檔需要儲存哪些屬性,這個nscoder型別的物件和字典很相似。我們在自定義類的.m檔案中要實現這個方法。就比如我在p...