次の方法を使用すると、iOS 5ですぐに正しい順序が得られますが、設定で切り替えた後、またはアプリケーションを再起動した後(設定を閉じた後)にiOS 6および7で順序が変更されません。
BOOL firstNameFirst = NO;
if (IOS_VERSION>=7) {
firstNameFirst = (ABPersonGetCompositeNameFormatForRecord(NULL)==kABPersonCompositeNameFormatFirstNameFirst);
}else{
firstNameFirst = (ABPersonGetCompositeNameFormat() == kABPersonCompositeNameFormatFirstNameFirst);
}
私は何が欠けていますか?
編集: この bool はユーザーの既定の順序を保存することになっているため、姓と名の文字列を並べ替えて、iPhone の設定で設定した方法でユーザーに表示できます。
EDIT2:IOS_VERSION
マクロは完全に機能します。ブレークポイントを使用してチェックしましたが、設定/メール、連絡先、カレンダー/連絡先/表示順序の設定が何であれ、常にの値を取得YES
しますfirstNameFirst