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...