Monday, September 15, 2014

ABAddressBookRef Filter through ABRecordRefs

Here's a way to filter some phone contacts:

        ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, &error);
        CFArrayRef people = ABAddressBookCopyArrayOfAllPeople(addressBook);
        CFMutableArrayRef peopleMutable = CFArrayCreateMutable(kCFAllocatorDefault, 0, &kCFTypeArrayCallBacks);
        if (people) {
            NSInteger numberOfPersonsInAB=CFArrayGetCount(people);
            for (int i =0; i< numberOfPersonsInAB; i++) {
                ABRecordRef record = CFArrayGetValueAtIndex(people, i);
                NSString *note = (__bridge NSString *)(ABRecordCopyValue(record, kABPersonNoteProperty));
                if ( note != nil &&  ([note rangeOfString:@"hi"].location != NSNotFound)) {
                    CFArrayAppendValue(peopleMutable, record);
                }
            }
            CFRelease(people);

        }

No comments:

Post a Comment