【iOS開發】如何將Array儲存在本地

KyXu發表於2015-07-22

做開發的時候,我們經常需要將資料儲存在plist檔案中,用這種方式來將資料寫入磁碟,這樣退出 App 再開啟的話,上次寫入的檔案還在。

常用的方法是這個

func  writeToFile(path:String, atomically useAuxiliaryFile:Bool) ->Bool

然而 writeToFile 這個函式卻只屬於 NSArray

假如我自定義了一個Person類來寫人,然後用陣列來儲存Person物件,那麼我將把這個陣列初始化為

let personArray :[Person] = [Person]()

這時,這個 personArray 就只能是 Array,而不是 NSArray。

想要把它儲存在本地plist檔案中,需要用到 NSKeyedArchiver  NSKeyedUnarchiver

但是在此之前,你需要把你的類改造一下。

起初的類
需要加入的內容

你需要在你的類中實現 encode function,實現起來也很簡單,見上圖。而一旦 encode 方法被實現,NSKeyedArchiver 和 NSKeyedUnarchiver 馬上就被“解鎖”並可以替代 writeToFile 方法啦!

將peopleArray儲存到本地plist

將peopleArray從本地plist中取出

附上我在 StackOverFlow 上的相關討論


相關文章