从AddressBook iPhone获取特定联系人组

时间:2011-11-24 04:54:31

标签: iphone objective-c ios addressbook

我在地址簿中获取特定联系人的组名,但是下面的代码返回错误的组名,例如,如果联系人C1来自组G1,则代码给我组G2。 谁能告诉我这里我做错了什么?

*代码

    ABAddressBookRef addressBook = ABAddressBookCreate();
    CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople(addressBook);
    CFIndex nPeople = ABAddressBookGetPersonCount(addressBook);

    NSInteger recordId;
    ABRecordRef recordGroupID;

    for( int i=0;i< nPeople;i++)
    {
        NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];

        @try {

            NSAutoreleasePool *Pool = [[NSAutoreleasePool alloc] init];

            ABRecordRef ref = CFArrayGetValueAtIndex(allPeople, i);         

            recordId = ABRecordGetRecordID(ref);
            recordGroupID = ABAddressBookGetGroupWithRecordID(addressBook, recordId);

            NSString *grpName;

            if(recordGroupID)
                grpName = (NSString *)ABRecordCopyCompositeName(recordGroupID);
            else
                grpName = @"";

            [dict setObject:grpName forKey:@"GroupName"];

            CFStringRef firstName = ABRecordCopyValue(ref, kABPersonFirstNameProperty);
            CFStringRef lastName = ABRecordCopyValue(ref, kABPersonLastNameProperty);

.....
and so on
}

0 个答案:

没有答案