【问题标题】:How can I save array of Dictionary in CoreData?如何在 CoreData 中保存字典数组?
【发布时间】:2017-03-23 23:52:55
【问题描述】:

如何将数据存储在 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()

但不确定。

【问题讨论】:

    标签: ios swift uitableview core-data


    【解决方案1】:

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

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

    为了将您的输入保存为Task 对象,如果您的屏幕上有一个textField 和一个notesField 来接收输入,您可以执行以下操作:

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

    【讨论】:

    • 我的代码正在做的是,它像一个大字符串一样保存数据,而不是保存在不同的字典中。我希望我的textField(在我的tableView 中)将数据存储在notesField 的字典数组中
    • iOS 不会智能并为您分离出您的字典 :) 如果您将字典(作为文本)分配给 String 属性,它会将文本保存在一个字段中 :) 您需要浏览字典并提取每个值并将其设置为 Task 对象上的正确属性。我将在我的答案中添加一些伪代码以便更好地解释。
    • 现在看看。一旦我给你答案,我会更新我的答案。
    • @S.Verma In SecondViewController 您要保存屏幕字段中的哪些值? Task 的结构是什么,以便我知道您正在处理哪些属性?另外,你能和我分享完整的项目代码吗?这样可以更快地回答问题:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-18
    • 1970-01-01
    • 2015-07-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-02
    相关资源
    最近更新 更多