2017-06-17 70 views
0

我有一個struct這是類似以下內容:緩存用戶配置文件

Struct User { 
    let name: String? 
    let address: String? 

    init(name: String, address:String) { 
     self.name = name 
     self.address = address 
    } 
} 

我試圖緩存用戶配置文件,但我懷疑我的最好的辦法做到這一點。

我上面給的結構的例子是我真正的小尺寸擊中其containes資料圖片爲好。

我已經緩存在[UserDefaults]一些有用的東西,但我不知道我是否應該緩存中UserDefaults或CoreData的用戶資料?

如果你覺得UserDefaults是最好的方法,我怎麼能存儲這種類型成嗎?我可以存儲簡單的布爾值等,但我怎麼能保存一個像上面的結構,然後正確地獲取其數據?

self.cacheUser = User(name: "Ivan", address: "EUA") 

如何將[cacheUser]緩存到[NSUserDefaults]?

謝謝。

回答

1

您可以使用NSKeyedArchiver歸檔對象,然後使用NSKeyedUnarchiver來取消歸檔對象,但它必須符合NSCopying協議。

您還可以使用CoreData保存對象,如果他們更廣泛和複雜。

如果沒有在類的變數太多,你可以簡單地把變量名和值在字典中並保存字典到用戶的默認值。然後,您可以獲取它們並用保存爲用戶默認值的字典值重建對象。但是,我只會做,如果對象是非常簡單的(例如,一對夫婦在INT和/或字符串類)。

最後,我建議使用CoreData堅持爲自定義對象。因爲,如類開始變得越來越複雜,CoreData會給你更好的性能和更快的可訪問性。

+0

謝謝。是的,我肯定會和CoreData一起去的。感謝您的意見 –