Search code examples
iosaddressbook

How to check if a contact in Address Book has multiple numbers in iOS?


I have a requirement to determine if a contact that is saved in the address book has multiple mobile numbers.

I have the record ID of a Contact and I need to check if that contact has multiple mobile numbers.

Is this possible?


Solution

  • Got the Answer!!! I have written a method to get the total count of mobile numbers for a contact

    -(NSInteger)getCountOfTotalMobileNumbersForContact:(ContactData *)contactData{
    NSInteger totalCountOfMobileNumbers = 0;
    
    ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, NULL);
    ABRecordRef contact = ABAddressBookGetPersonWithRecordID(addressBook, (int)contactData.mRecordID);
    if(contact != nil)
    {
        self.phoneNumbers = ABRecordCopyValue(contact, kABPersonPhoneProperty);
        NSString *lFirstName = (__bridge_transfer NSString*)ABRecordCopyValue(contact, kABPersonFirstNameProperty);
        NSString *lLastName = (__bridge_transfer NSString*)ABRecordCopyValue(contact, kABPersonLastNameProperty);
    
        NSString *fullName = lFirstName;
    
        if (lLastName.length) {
            fullName = [[lFirstName stringByAppendingString:@" "] stringByAppendingString:lLastName];
        }
        totalCountOfMobileNumbers = ABMultiValueGetCount(self.phoneNumbers);
    }
    
    return totalCountOfMobileNumbers;
    }