2013-05-02 137 views
0

我有一个字典数组的联系人详细信息。我试图在ABRecordRef中添加该记录,但我不明白它是如何工作的。这里是我的代码:如何从iPhone中的NSMutableArray中获取联系人的记录

for (int i = 0; i <= [contactArray count]; i++) 
{ 
    ABRecordRef person = (ABRecordRef)[contactArray objectAtIndex:i]; 
    ABAddressBookAddRecord(addressBook, group, &error); 
    ABAddressBookSave(addressBook, &error); 
} 

我想这个联系人记录添加到使用ABGroupAddMember组。现在我怎样才能从NSMutableArray获得记录。任何帮助将不胜感激。谢谢。

+0

要字典转换为ABRecordRefs? (这就是我在这里得到的:D) – 2013-05-02 06:34:06

+0

@ Daij-Djan是的,在字典中我有firstName,lastName,emailId,一个人的电话号码,我想添加字典中的所有值以将该联系人添加到组中。 – user2336918 2013-05-02 06:41:05

+0

也许这个解决问题有帮助 - [复制NSDictionary到NSArray](http://stackoverflow.com/questions/5788694/copying-nsdictionary-to-nsarray) – Vikr 2013-05-02 06:46:59

回答

0

没有内置的功能。你将不得不创建一个空的记录,那么您可以通过字典中的所有字段,然后添加那些记录和安全这

这恼人的体力劳动...:d

我一起去Erica的ABContactHelper:https://github.com/erica/ABContactHelper

那就只有

for(NSDictionary *d in recordArray) { 
    ABContact *contact = [ABContact contactWithDictionary:d]; 
    ABGroupAddMember(theGroup, contact.record); 
} 

如果你喜欢手动:

for(NSDictionary *d in recordArray) { 
    ABRecordRef person = ABPersonCreate(); 

    for(NSString *k in d.allKeys) { 
     id v = d[k]; 
     //HERE call ABRecordSetValue with the right params depending on if the value is a NSString or NSArray or an image 
    } 

    ABGroupAddMember(theGroup, contact.record); 
    CFRelease(person); 
} 

免责声明:直列类型,但应该没问题

相关问题