The phone Number is no string . it is defined as a multival as there can be 0..x numbers there.
you can't just treat it as a string . you need to enumerate through the multival\
e.g. to get the first of ANY kind
ABMultiValueRef phoneEntries = ABRecordCopyValue(person, kABPersonPhoneProperty);
NSMutableArray *numbers = [NSMutableArray array)];
for(int i = 0; i < ABMultiValueGetCount(phoneEntries); i++) {
NSString *number = (__bridge_transfer NSString*)ABMultiValueCopyValueAtIndex(phoneEntries, i))];
// Do what you want with the number
[numbers addObject:number];
}
CFRelease(phoneEntries);