ABMultiValueGetIndexForIdentifier(multiValue, identifier)
I had this problem and it was driving me cRaZy!!!!
As MacDonaldsd states:
You need to use the ABMultiValueGetIndexForIdentifier() to get the index. The identifier isn’t the index of that property.
And you have to reconcile the identifier to the index like this:
[sourcecode]
ABMultiValueRef multiValue = ABRecordCopyValue(person, property);
NSString *number = (NSString *)ABMultiValueCopyValueAtIndex(multiValue, ABMultiValueGetIndexForIdentifier(multiValue, identifier));
[/sourcecode]