如何在CoreData中保存Dictionary数组?

时间:2017-03-23 23:52:55

标签: ios swift uitableview core-data

如何将数据存储在CoreData中?我使用它在我的tableView单元格中显示它但是如何从我的数据库中保存和检索?

以下是代码:

var arrOfDict = [[String :AnyObject]]()
var dictToSaveNotest = [String :AnyObject]()

class SecondViewController: UIViewController {

   @IBAction func addItem(_ sender: Any)
{
        dictToSaveNotest.updateValue(notesField.text! as AnyObject, forKey: "notesField")
        arrOfDict.append(dictToSaveNotest)
}

然后在tableViewCell中查看,我使用了代码:

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

let cell = tableView.dequeueReusableCell(withIdentifier: "CustomCellID") as! CustomCell
cell.textView.text = arrOfDict[indexPath.row]["notesField"] as! String!

}

我在addItem

中尝试了这个
 let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
        let task = Task(context: context)
        task.notes=notesField.text!

        //save the data to coreData
        (UIApplication.shared.delegate as! AppDelegate).saveContext()

但不确定。

1 个答案:

答案 0 :(得分:0)

是的,这通常是您保存到Core Data的方式。您创建该对象的实例。设置属性,然后保存。你收到任何错误吗?或者您只是想确保您的代码有效吗?

如果要验证代码是否有效,最好的办法是尝试访问保存的数据。如果您可以看到从数据库中检索到的已保存数据,那么您的代码可以工作:)

为了将您的输入保存为Task对象,如果您的屏幕上有textFieldnotesField来接受输入,那么您可以执行以下操作:

let task = Task(context: context)
task.title = textField.text
task.notes = notesField.text
//save the data to coreData
(UIApplication.shared.delegate as! AppDelegate).saveContext()