連絡先がリンクされている連絡先があります。したがって、この連絡先を ABPersonViewController で表示すると、元のメールとリンクされた連絡先からのメールがあります。
リンクされた電子メール (John-appleseed@mac.com) を選択すると、メソッド呼び出しが委任されます。
- (BOOL)personViewController:(ABPersonViewController *)personViewController shouldPerformDefaultActionForPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier
{
//get selected phone number
ABMultiValueRef multi = ABRecordCopyValue(person, property);
CFIndex index = ABMultiValueGetIndexForIdentifier(multi, identifier);
NSString *selectedContactData = (__bridge_transfer NSString *)ABMultiValueCopyValueAtIndex(multi, index);
return NO;
}
しかし、 selectedContactData では、選択された電子メールではなく、最初の電子メールを受け取ります。この問題は、連絡先を組み合わせた場合にのみ発生します。
連絡先が接続されている連絡先からメールを選択する適切な方法はありますか?