2017-02-17 34 views
3

我有一個名爲Contacts的實體,我想在其中存儲兩個人的姓名和號碼。IOS - 如何從多個textField輸入同時將數據存儲到CoreData中

我有我的viewController(textField1,textField2,textField3,textField4)四個textFields。在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 
    { 

    } 

} 

如何將輸入到所有四個textField中的數據存儲到實體中,同時單擊saveButton時。

使用的Xcode 8.2,雨燕3.0

+0

您應該始終使用唯一的密鑰名稱。 –

回答

0

您在同一實體設置名稱和編號值的兩倍。第二次你這樣做時,你正在消滅你第一次設定的值。換句話說,名稱和號碼一次只能包含一個值。

最好的解決方案取決於你的數據模型是什麼樣的。解決您的問題的第一個嘗試是創建第二個Contacts實體phoneContactsObject2,並將其名稱和編號設置爲文本字段3和4的值。這會將兩組名稱和編號保存到Core Data中。

除此之外,你應該考慮這些聯繫是如何彼此相關,並在模型中的任何其他實體。

+0

這是CoreData的唯一方法嗎?如果同時存儲5個人姓名和號碼,我需要創建5個實體!我可以使用Firebase達到這個目標嗎? – Tester

+0

爲什麼你擔心存儲5個實體?將一個人視爲一個實體。如果你想存儲5個人,你需要5個實體。 –

+0

Okey。感謝這個想法。 – Tester

相關問題