我有一个基于地址簿的应用程序,我在其中获取联系人名称并将其显示在表格中,就像ABPeopleViewController一样,使用
NSString *name = (NSString *)ABRecordCopyCompositeName([contacts objectAtIndex:indexPath.section]);
aCell.textLabel.text = name;
[name release];
当我处理英文名字时,这很好用;他们像这样出来,我希望他们:
John Smith (good)
Jane Doe (good)
Taro Tanaka (Actually 太郎田中, and meh)
最后一个用日语,理想情况下应该是田中太郎。
然而,当我将语言改为中文和日文时,这就是我得到的:
Smith John (bad)
Doe Jane (bad)
Tanaka Taro (田中太郎, good)
虽然我想要的所有语言设置是:
John Smith
Jane Doe
Tanaka Taro (田中太郎, that is)
Apple的内置联系人通过加粗姓氏来处理这个问题,但这对于国际用户来说似乎很粗糙。无论如何检测语言并相应地显示名称?
答案 0 :(得分:1)
好吧,经过一番挖掘后,我在iOS 5的新NSLinguisticTagger中找到了答案,它可以用语言和字符串做各种奇妙的事情。通过一点操作,它可以被强制告诉我字符串是什么语言,因此如何组合一个全名。我在另一个问题中发布的答案,因为它泄漏了内存,我无法解决它。这是链接: