从AddressBook iPhone获取特定联系人的小组

我在我的地址簿中获取特定联系人的组名,但是如果联系人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 }