2017-02-17 3 views
3

У меня есть объект с именем Контакты, в котором я хочу сохранить имя и количество двух человек.IOS - Как хранить данные в CoreData из нескольких текстовых полей в то же время

У меня есть четыре текстовых поля на мой взгляд. Контроллер (textField1,textField2,textField3,textField4). В textField 1 и 2 будут введены имя и номер первого лица, а в textField 3 и 4 будут введены имя и номер второго лица. Теперь, когда я нажимаю saveButton, данные, введенные во все четыре текстовых поля, должны храниться в сущности с именем «Контакты». То есть имя и количество двух человек должны быть сохранены в объекте.

Используя следующий код, он сохраняет данные, которые вводятся в textField3 и textField4.

@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 
    { 

    } 

} 

Как я могу хранить данные, введенные во всех четырех TextFields в сущности, в то же самое время, когда SaveButton нажата.

Использование Xcode 8.2, Swift 3.0

+0

Вы всегда должны использовать уникальное имя ключа. –

ответ

0

Вы устанавливаете значение для имени и номера дважды на одной и той же сущности. Во второй раз, когда вы это делаете, вы уничтожаете значения, которые вы установили в первый раз. Другими словами, имя и номер могут содержать только одно значение за раз.

Лучшее решение этого зависит от модели вашей модели данных. Первая попытка исправить вашу проблему - создать второй объект Contacts, phoneContactsObject2 и установить его имя и номер в значения текстовых полей 3 и 4. Это сохранит оба набора имен и номеров в Core Data.

Помимо этого, вы должны подумать о том, как эти контакты связаны друг с другом и с любыми другими объектами вашей модели.

+0

Это единственный способ с CoreData? в случае сохранения имени и номера 5 человек одновременно, мне нужно будет создать 5 сущностей !!. Могу ли я достичь этого, используя firebase? – Tester

+0

Почему вы беспокоитесь о сохранении 5 объектов? Подумайте о человеке как об объекте. Если вы хотите сохранить 5 человек, вам нужно 5 сущностей. –

+0

Okey. . Спасибо за эту идею. – Tester

Смежные вопросы