iPhone ABAddressBookRef。检索所有数据

时间:2011-08-25 15:11:04

标签: iphone addressbook

我使用的是AddressBook框架(iPhone SDK)。我将我的联系人显示为模态视图控制器并浏览它。 我想知道是否有可能在没有这种模态视图控制器和人工交互的情况下检索所有联系人数据。

P.S。这似乎不是因为Apple的政策,但我仍然需要'100%肯定'答案

1 个答案:

答案 0 :(得分:2)

要检索所有联系人的数组,请使用ABAddressBookCopyArrayOfAllPeople函数,如下所示:

- (void)viewDidLoad
{
    [super viewDidLoad];
    ABAddressBookRef addressBook = ABAddressBookCreate();
    if (addressBook != nil)
    {
        NSLog(@"Successfully accessed the address book.");
        CFArrayRef arrayOfAllPeople = ABAddressBookCopyArrayOfAllPeople(addressBook);
        if (arrayOfAllPeople != nil)
        {
            NSUInteger peopleCounter=0;
            for (peopleCounter=0;peopleCounter<CFArrayGetCount(arrayOfAllPeople); peopleCounter++)
            {
                ABRecordRef thisPerson=CFArrayGetValueAtIndex(arrayOfAllPeople,peopleCounter);
                NSLog(@"%@", thisPerson);
                /* Use the [thisPerson] address book record */
            }
            CFRelease(arrayOfAllPeople);
        }
        /* if (allPeople != nil){ */
        CFRelease(addressBook);
    } /* if (addressBook != nil){ */
}