IOS:有没有一种简单的方法可以按照用户喜欢的方式将联系人的可用名称格式化为字符串?

时间:2014-10-11 01:05:46

标签: ios abaddressbook addressbookui

我需要显示某种用户友好字符串,用于通过地址簿记录识别某人。由于人物记录可以具有名字,姓氏,昵称,中间名称的任意组合,并且可以存在用于显示它们的任何组合(缩短名字或姓氏,首选昵称,姓氏等),它是很快就成了我自己的一项艰巨任务。

是否有一个我没有找到的例程会为我做这种格式化?

E.g。类似的东西:

NSString *displayName = (__bridge NSString*)APIGetDisplayNameForPersonRecord(self.selectedPerson);

代替:

NSString *firstName = (__bridge_transfer NSString*) ABRecordCopyValue(self.selectedPerson, kABPersonFirstNameProperty);
NSString *lastName = (__bridge_transfer NSString*) ABRecordCopyValue(self.selectedPerson, kABPersonLastNameProperty);
NSString *nickname = (__bridge_transfer NSString*) ABRecordCopyValue(self.selectedPerson, kABPersonNicknameProperty);

NSString *displayName = @"";
if(firstName) displayName = firstName;
if(lastName) // ...
if(nickname) // ...
// lots of logic

1 个答案:

答案 0 :(得分:0)

我能找到的最接近的是ABRecordCopyCompositeName(),这已经足够了。