2

次の方法を使用すると、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

4

2 に答える 2

0
if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) 
{

    // Load resources for iOS 6.1 or earlier

} else 
{

    // Load resources for iOS 7 or later

}

このようにしてください。これから引用します。

このリンク

于 2013-10-30T13:36:14.023 に答える