Я получаю имя группы для определенного контакта в моей адресной книге, но приведенный ниже код возвращает мне неправильное имя группы, например, если контакт 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
}