문제

이메일에는 여러 값이있을 수 있지만 이메일을 탐색하는 방법을 잘 모르겠습니다.

사람을 올바르게 얻을 수 있습니다.

ABRecordRef person = // getting a person;
NSString* emails = (NSString *)ABRecordCopyValue(person, kABPersonEmailProperty);

... 무엇 향후 계획? 내가 인쇄하려고한다면 emails 내가 얻는 변수 :

Emails: <NSCFType: 0x4018d40>
도움이 되었습니까?

해결책

이메일은 문자열이 아니라 배열이어야하기 때문입니다. 사람들은 많은 이메일을 가질 수 있습니다!

ABMultiValueRef emails = ABRecordCopyValue(person, kABPersonEmailProperty);
CFStringRef email = ABMultiValueCopyValueAtIndex(emails, <INDEX>);
NSLog( (NSString *) email);

여기 다중 행사와 함께 할 수있는 일에 대한 문서입니다.

다른 팁

이 항목의 유형은 an입니다 ABMultiValue (특히이 필드의 유형은 kABMultiStringProperty). 보다 "Multivalue 목록 사용" 이것을 읽는 방법. 참조 주소록 대상 C 상수 참조 각 속성이 반환하는 것에 대해.

또한 AB 기능은 규칙을 만듭니다. "copy"라는 단어가있는 함수에서 얻은 객체를 공개 할 책임이 있습니다.

iOS 9에서는 ABFRAMEWORK가 새로운 것을 위해 더 이상 사용되지 않았습니다. 연락처 프레임 워크:

CNContact의 모든 이메일 주소를 기록하는 예를 보여줍니다.

CNContact * yourContact = //...

for (CNLabeledValue* emailLabeledValue in yourContact.emailAddresses){
    NSLog(@"%@",[emailLabeledValue value]);
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top