【问题标题】:IOS - How to store data into CoreData from multiple textField input at the same timeIOS - 如何同时将来自多个文本字段输入的数据存储到CoreData
【发布时间】:2017-07-07 02:23:09
【问题描述】:

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

我的 viewController (textField1,textField2,textField3,textField4) 中有四个文本字段。在 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

【问题讨论】:

  • 您应该始终使用唯一的键名。

标签: ios swift xcode core-data entity


【解决方案1】:

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

对此的最佳解决方案取决于您的数据模型是什么样的。解决您的问题的第一个尝试是创建第二个联系人实体 phoneContactsObject2,并将其名称和号码设置为文本字段 3 和 4 的值。这会将名称和号码集保存到 Core Data。

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

【讨论】:

  • 这是 CoreData 的唯一方法吗?如果同时存储 5 个人的姓名和号码,我需要创建 5 个实体!!。我可以使用 firebase 来实现吗?
  • 为什么要担心存储 5 个实体?将人视为一个实体。如果要存储 5 个人,则需要 5 个实体。
  • 好吧。 .谢谢你的想法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多