2017-03-01 2 views
0

기존 연락처의 값을 복사하여 새 연락처를 추가하려고합니다.contactViewController didComplete 연락처가 없습니다.

if let mutableContact = self.editingCard?.contact.mutableCopy() as? CNMutableContact { 
    let editCardViewController = CNContactViewController(for: mutableContact) 
    editCardViewController.contactStore = CNContactStore() 
    editCardViewController.title = "Edit Card" 
    editCardViewController.delegate = self 
    self.present(UINavigationController(rootViewController: editCardViewController), animated: true, completion: nil) 
} 

표시된 연락처보기 컨트롤러는 문제가 없습니다. 연락처에서 미리 채워진 세부 정보를 표시합니다. 그러나 완료를 클릭하면 nil 연락처 참조에서 콜백이 호출됩니다. 즉

func contactViewController(_ viewController: CNContactViewController, didCompleteWith contact: CNContact?) { 
    print("Completed adding card \(contact)") 
} 

실마리 나는 무엇을 잘못하고 있습니까?

답변

0

이것은 CNMutableContact 개체의 형식이 잘못된 정보 때문에 발생하는 것으로 보입니다. 필자의 경우 날짜 (생일, 기념일 및 기타 날짜)에는 날짜 개체에 분, 초가 설정되었습니다. https://developer.apple.com/reference/contacts/cnmutablecontact/1403311-dates에 따라 해당 사용 사례가 잘못되었습니다.

누구나이 문제가 표시 될 수 있습니다. 사용자가 설정 한 모든 정보를 디버깅하면 CNMutableContact 참조에서 잘못된 형식의 정보를 이해하는 데 도움이됩니다.