2016-07-25 3 views
1

CNContactVCardSerialization.dataWithContacts() 메서드를 사용하여 CNContact 배열을 vCard로 변환하려고합니다. 그러나 그것은 나에게 다음과 같은 오류를주고있다. CNContactVCardSerialization.dataWith 예외를 제공합니다

2016-07-25 14:05:00.115 AddressBook-ios9[902:28918] Exception writing contacts to vCard (data): A property was not requested when contact was fetched.

은 내가 CNContacts의 올바른 배열을 전달하고있어,하지만 여전히이 예외를주고 있음을 확인했다. 아무도 내게 잘못한 것을 안내 할 수 있습니까?

아래에 소스 코드가 첨부됩니다.

func getVcardFromSearchingName(name: String) -> NSData? { 
    do {    
     if let contacts = searchMultiContacts(name) { 
      print(contacts) 
      let vCard = try CNContactVCardSerialization.dataWithContacts(contacts) 
      return vCard 
     } else { 
      return nil 
     } 
    } catch { 
     return nil 
    } 
} 

답변

2

내 실수를 발견했습니다. 연락처를 가져올 수있는 키가 누락되었습니다. CNContactVCardSerialization.descriptorForRequiredKeys(). 코드를 추가 한 후 코드가 완벽하게 작동합니다.

+0

#haider_kazal : 당신은 내가'방법은 keysToFetch''필요 unifiedContactsMatchingPredicate()', 언급 한 바와 같이 ... 위의 –

+0

@AbhishekThapliThapliyal에 CNContactVCardSerialization.descriptorForRequiredKeys() 을 사용하는 방법을 말해 줄 수; VCards를 만들기 위해 필요한 데이터를 얻기 위해'keysToFetch'에'CNContactVCardSerialization.descriptorForRequiredKeys()'를 포함하십시오. –