Iphone - 检查地址簿中是否已存在组名

时间:2011-04-20 12:19:15

标签: iphone objective-c xcode

问候,

我正在制作一个地址簿应用程序,以便可以在组下创建联系人。我已经能够创建组。但每次我启动应用程序时,该组都会重复。

我怎么能检查该组是否已经存在。 我曾经使用过ABAddressBookCopyArrayOfAllGroups,但是在打印数组的NSLog时我没有成功从该数组中检索该组的名称

1 个答案:

答案 0 :(得分:6)

+ (BOOL)checkIfGroupExistInAddressBook:(NSString*)gName{

    BOOL gExist = NO;
    ABAddressBookRef addressBook = ABAddressBookCreate();
    NSArray *groups = (NSArray *) ABAddressBookCopyArrayOfAllGroups(addressBook);

    // Check group in existing Address book groups
    for (id _group in groups)
    {
        //NSString *currentGroupName = [[[NSString alloc] init] autorelease];
        NSString *currentGroupName = (NSString*) ABRecordCopyValue(_group, kABGroupNameProperty);
        //(ABRecordRef)group]
        // If group exist return YES
        if ([currentGroupName isEqualToString:gName]){
            gExist = YES;
            CFRelease(currentGroupName);
            break;
        }

        CFRelease(currentGroupName);
    }

    CFRelease(addressBook);
    if (groups) {[groups release];groups = nil;}

    // If group Dose not exist return NO;
    return gExist;

}