Как вы извлекаете объект из адресной книги, и как только он получен, как вы обрабатываете его, чтобы извлечь из него номер. Я использую приведенный ниже код, чтобы сделать то же, что вы упомянули, и он точно выбирает числа.
ABRecordRef person = ABAddressBookGetPersonWithRecordID(appDelegate.addressBook, contactId);
ABMultiValueRef multiValue = ABRecordCopyValue(person, kABPersonPhoneProperty);
NSArray *allNumbers = (NSArray *)ABMultiValueCopyArrayOfAllValues(multiValue);
NSMutableDictionary *filteredNumbers = [NSMutableDictionary new];
if([allNumbers count] > 0) {
for(int contactIndex = 0; contactIndex < [allNumbers count]; contactIndex++) {
NSString *contactValue = (NSString *)ABMultiValueCopyLabelAtIndex(multiValue, contactIndex);
if(!([contactValue isEqualToString:@"_$!<WorkFAX>!$_"] || [contactValue isEqualToString:@"_$!<HomeFAX>!$_"] || [contactValue isEqualToString:@"_$!<Pager>!$_"])) {
if([[contactValue substringWithRange:contactLabelCharacterCustom] isEqualToString:@"_$"])
typeOfContact = [contactValue substringWithRange:contactLabelCharacter];
else
typeOfContact = [contactValue substringWithRange:(NSRange){0,1}];
NSString *value = (NSString *)ABMultiValueCopyValueAtIndex(multiValue, contactIndex);
[filteredNumbers setValue:typeOfContact forKey:value];
[value release];
value = nil;
}
[contactValue release];
contactValue = nil;
}
}
Я уверен, что это поможет вам.
Приветствия