2017-02-17 1 views
3

연락처와 이름이 같은 2 개의 번호를 저장하려는 연락처가 있습니다.IOS - 동시에 여러 textField 입력에서 CoreData에 데이터를 저장하는 방법

내 viewController (textField1,textField2,textField3,textField4)에 4 개의 textField가 있습니다. textField 1과 2에는 첫 번째 사람의 이름과 번호가 입력되고 textField 3과 4에는 두 번째 사람의 이름과 번호가 입력됩니다. 이제 saveButton을 클릭하면 네 개의 textField에 모두 입력 된 데이터가 'Contacts'라는 엔터티에 저장됩니다. 즉, 두 사람의 이름과 수를 엔티티에 저장해야합니다.

다음 코드를 사용하면 textField3textField4 만 입력 한 데이터를 저장합니다. saveButton을 클릭하면

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

    } 

} 

어떻게, 같은 시간에, 기업에 네 개의 텍스트 필드에 입력 된 데이터를 저장할 수 있습니다.

당신은 같은 개체에 두 번 이름과 번호의 값을 설정하는 엑스 코드 8.2, 스위프트 3.0

+0

항상 고유 한 키 이름을 사용해야합니다. –

답변

0

사용. 두 번째로이 작업을 수행하면 처음 설정 한 값을 지 웁니다. 달리 말하면 이름과 숫자는 한 번에 하나의 값만 포함 할 수 있습니다.

이 최상의 솔루션은 데이터 모델의 모양에 따라 다릅니다. 문제를 해결하기위한 첫 번째 시도는 두 번째 연락처 엔터티 인 phoneContactsObject2를 만들고 이름과 번호를 텍스트 필드 3과 4의 값으로 설정하는 것입니다. 이렇게하면 이름과 숫자의 두 세트가 모두 Core Data에 저장됩니다.

그 외에도이 주소록이 서로 및 모델의 다른 항목과 어떻게 관련되어 있는지 고려해야합니다.

+0

이것이 CoreData의 유일한 방법입니까? 동시에 5 명의 이름과 번호를 저장하는 경우 엔 5 개의 엔티티를 생성해야합니다 !! firebase를 사용하여 이것을 달성 할 수 있습니까? – Tester

+0

왜 엔티티 5 개를 저장하는 것이 걱정됩니까? 한 개인을 실체로 생각하십시오. 5 명을 저장하려면 5 개의 엔티티가 필요합니다. –

+0

Okey. . 아이디어에 감사드립니다. – Tester

관련 문제