使用以下方法,我立即在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
的值
答案 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
}
这样做。 参考文献。