iOS用户默认名称格式问题

时间:2013-10-30 13:19:30

标签: ios

使用以下方法,我立即在iOS 5上获得正确的订单,但在iOS 6&在设置中切换后,或在重新启动应用程序后(关闭设置后)。

BOOL firstNameFirst = NO;

if (IOS_VERSION>=7) {
    firstNameFirst = (ABPersonGetCompositeNameFormatForRecord(NULL)==kABPersonCompositeNameFormatFirstNameFirst);
}else{
    firstNameFirst = (ABPersonGetCompositeNameFormat() == kABPersonCompositeNameFormatFirstNameFirst);
}

我缺少什么?

编辑: 这个bool应该存储用户默认顺序,所以我可以订购名字和姓氏字符串,并按照他在iPhone设置中设置的方式向用户显示。

EDIT2:IOS_VERSION宏工作正常,我使用断点检查它们,但无论设置/邮件,通讯录,日历/联系人/显示顺序设置是什么,我总是得到{ {1}} YES的值

2 个答案:

答案 0 :(得分:6)

我希望对你有所帮助。

ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, NULL);

BOOL firstNameFirst = NO;

if (IOS_VERSION>=7) {
    firstNameFirst = (ABPersonGetCompositeNameFormatForRecord(NULL)==kABPersonCompositeNameFormatFirstNameFirst);
}else{
    firstNameFirst = (ABPersonGetCompositeNameFormat() == kABPersonCompositeNameFormatFirstNameFirst);
}

if(addressBook != NULL) {
    CFRelease(addressBook);
}

答案 1 :(得分:0)

if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) 
{

    // Load resources for iOS 6.1 or earlier

} else 
{

    // Load resources for iOS 7 or later

}

这样做。 参考文献。

This Link