IOS - 如何同时从多个textField输入将数据存储到CoreData中

时间:2017-02-17 14:09:05

标签: ios swift xcode core-data entity

我有一个名为Contacts的实体,我想在其中存储两个人的姓名和人数。

我的viewController(textField1,textField2,textField3,textField4)中有四个textField。在textField 1和2中,将输入第一人的姓名和号码,在textField 3和4中,将输入第二人的姓名和号码。现在,当我单击saveButton时,在所有四个textField中输入的数据应存储在名为' Contacts'的实体中。也就是说,应该将两个人的姓名和人数存储在实体中。

使用以下代码,它会存储仅在textField3textField4中输入的数据。

@IBAction func saveButton(_ sender: Any)
{
    let appDelegate = UIApplication.shared.delegate as! AppDelegate

    let context = appDelegate.persistentContainer.viewContext

    let phoneContactsObject = NSEntityDescription.insertNewObject(forEntityName: "Contacts", into: context)


    phoneContactsObject.setValue(textField1.text, forKey: "name")
    phoneContactsObject.setValue(textField2.text, forKey: "number")

    phoneContactsObject.setValue(textField3.text, forKey: "name")
    phoneContactsObject.setValue(textField4.text, forKey: "number")

    do
    {
        try context.save()
        print("saved")
    }
    catch
    {

    }

}

如何在点击saveButton的同时将所有四个textField中输入的数据存储到实体中。

使用Xcode 8.2,Swift 3.0

1 个答案:

答案 0 :(得分:0)

您在同一实体上设置名称和数字的值两次。第二次执行此操作时,您将清除第一次设置的值。换句话说,名称和数字一次只能包含一个值。

最佳解决方案取决于您的数据模型。解决问题的第一个尝试是创建第二个Contacts实体phoneContactsObject2,并将其名称和编号设置为文本字段3和4的值。这样可以将两组名称和数字保存到Core Data。

除此之外,您应该考虑这些联系人如何相互关联以及模型中的任何其他实体。