2017-04-01 34 views
0

我有這樣的結構:的iOS - 保存結構的陣列中CoreData

     struct list 
{ 
         
         var userId: Int = 0 
         var id: Int = 0 
         var title: String = "" 
         var body: String = "" 

} 

在我的程序的其他部分,我宣佈的結構數組,我通過從互聯網上下載一個JSON文件中輸入信息。

var array = [list]() 

現在我的問題是保存和恢復CoreData中的這個結構數組。我不知道如何前進,你會幫我一把嗎?

+0

什麼是您的CoreData模型?檢查這個http://stackoverflow.com/questions/37876275/how-do-i-store-a-swift-struct-in-core-data-on-ios –

回答

1

我認爲你最好的選擇是去與二進制數據類型。

1.創建一個toDictionary()方法對你的結構模型:

@NSManaged var list: NSData?

func toDictionary() -> [String: Any] { 
    return ["userId: self.userId, "id": self.id, ...] 
} 

2.然後在你的核心數據模型,它代表你的結構列表中添加的NSData屬性3.訪問列表屬性與類助手:

func listDictionary() -> [String: Any]? { 
    guard let listData = self.list as? Data else { return nil } 
    let dict = NSKeyedUnarchiver.unarchiveObject(with: listData) as? [String: Any] 
    return dict 
} 

4.在您的列表對象上創建一個fromDictionary() -> list,它將從字典中構建模型