2009-10-29 39 views
5

我知道電子郵件可以有多個值,但我不確定如何瀏覽它們。如何獲取iPhone通訊錄聯繫人的電子郵件爲NSStrings?

我可以正確地找人。

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

...接下來是什麼?如果我嘗試打印emails可變我得到:

Emails: <NSCFType: 0x4018d40> 

回答

16

這是因爲電子郵件不應該是一個字符串,而是一個數組。人們可以有很多電子郵件!

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

Here是對一些事情的文檔,你可以用MultiValueLists

+0

謝謝!你知道如何獲得「電子郵件」數組的大小,以便我可以瀏覽它嗎? – marcgg

+0

我添加了一個鏈接到文檔,你會發現'count'方法 – coneybeare

+0

爲最終使用這個計數:CFIndex count = ABMultiValueGetCount(emails); – marcgg

1

在iOS中9 ABFramework已棄用新聯繫人框架

我告訴你一個例子來記錄一個CNContact的每一個電子郵件地址:

CNContact * yourContact = //... 

for (CNLabeledValue* emailLabeledValue in yourContact.emailAddresses){ 
    NSLog(@"%@",[emailLabeledValue value]); 
} 
相關問題