ios NSUserDefaults使用注意事項

2021-06-28 12:17:25 字數 888 閱讀 3077

nsuserdefaults適合儲存輕量級的資料,他不僅可以儲存基本資料型別,還可以儲存nsnumber(integer、float、double),nsstring,nsdate,nsarray,nsdictionary,bool型別。

[nsuserdefaults 

standarduserdefaults]是系統提供的單例方法。

一般通過[[nsuserdefaults 

standarduserdefaults] 

setobject:forkey:]來儲存資料,通過[[nsuserdefaults 

standarduserdefaults] 

objectforkey:]來獲取已存資料。每次儲存資料後用[[nsuserdefaults 

standarduserdefaults] 

synchronize]方法持久化資料,直接同步到檔案裡。

nsuserdefaults儲存方式跟字典類似,事實上,nsuserdefaults就是乙個plist檔案。

但是nsuserdefaults不能儲存自定義的類物件,若把乙個物件儲存到nsuserdefaults會報錯。聰明的人會把物件放進陣列,再把陣列存入nsuserdefaults,不過這樣做事錯誤的,因為陣列中包含了自定義物件。

若要在nsuserdefaults中存入自定義物件,則物件需要遵循nscoding協議,並

實現encodewithcoder

方法和initwithcoder

方法。具體參考

值得一提的是,我發現型別為nsnull的空資料也是無法存入nsuserdefaults的。若資料中有nsnull型別空資料,把它置nil即可存入nsuserdefaults。

總之,nsuserdefaults是一種操作簡單的資料庫。

iOS NSUserDefaults使用報錯問題

在使用nsuserdefaults的時候插入資料有時候會報以下錯誤 list object new msg 1 usr id 2 usr name usr tx for key newmsgarraydict 這種錯誤的原因是插入了不識別的資料型別,nsuserdefaults支援的資料型別有 ns...

Protocol Buffers使用注意事項

protocol buffers做為廣泛使用的乙個序列化開源庫,提供了很多語言下的支援,本文就談談msvc c 使用pb遇到的問題,當然這些問題因為每個人的使用模式不同,可能都不一樣,本文也不討論怎麼寫proto及編譯。我們使用pb做序列化可以把pb生成靜態庫或者動態庫 libprotobuf.dl...

C using namespace使用注意事項

一 using 用法 1.引用命名空間。如 using system 2.自動釋放物件使用的資源。如 using sqlconnection connection new sqlconnection connectionstring connection.open 當鏈結使用完畢以後,將自動釋放sq...