我在地址簿中获取特定联系人的组名,但是下面的代码返回错误的组名,例如,如果联系人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
}