使用Core Data将文本从文本字段分配到托管对象上下文

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Core Data将文本从文本字段分配到托管对象上下文相关的知识,希望对你有一定的参考价值。

需要帮助让保存功能工作,我是CoreData的新手,我只是跟随树屋课程,但树屋课程使用的是以前版本的xcode或不同版本的swift,因为当我跟着它时它给了我一个错误。

错误说“类型'项的价值'没有成员'文字'”

class popUpViewController: UIViewController {


    let managedObjectContext = CoreDataStack().managedObjectContext

    override func viewDidLoad() {
        super.viewDidLoad()

    }
    @IBOutlet var keyField: UITextField!

     @IBAction func save(_ sender: Any) {


        guard let text = keyField.text, !text.isEmpty else { return }


        let item = NSEntityDescription.insertNewObject(forEntityName: "Item", into: managedObjectContext) as! Item

        item.text = text

    }

}

答案

尝试这样的事情,让我知道它是否有效:

 func setValuesToModel(){
    let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
    let entity = NSEntityDescription.entity(forEntityName: "Item", in: context)
    let item = NSManagedObject(entity: entity!, insertInto: context)
    item.setValue("text You want", forKeyPath: "text")
    do {
        try context.save()
    } catch {
        print("Could not save. (error) , (error.localizedDescription)")
    }
}
另一答案

您可以创建如下所示的func,只需传递要存储的文本即可。根据您的要求更新密钥和实体名称

 func save(text: String) {

    // 1 fetching item and updating with text 
    let item = NSEntityDescription.entity(forEntityName: "Item", in: managedObjectContext)!

    item.text = text  // if you have created model class use this or user below line
    // item.setValue("Sample Text", forKeyPath: "text") //key will be the attribute name you have created 

    // 2 saving part
    do {
        //save tour context after setting value
        try managedObjectContext.save()
        } catch let error as NSError {
        print("Could not save. (error), (error.userInfo)")
    }
}

以上是关于使用Core Data将文本从文本字段分配到托管对象上下文的主要内容,如果未能解决你的问题,请参考以下文章

将字符串分配给另一个视图控制器中的文本字段

Visual C++ 表单、简单消息框和将文本从文本字段分配给字符串时出错

如何在通过 Core Data 保存我的 RestKit 托管对象之前对其进行修改?

从现有 XSD 创建托管对象模型 - iPhone Core Data

将文本附加到包含文本的现有字段

如何在 Core Data 中正确保存?