100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > IOS开发 汉字转拼音 把用户名按照姓名首字母进行排序

IOS开发 汉字转拼音 把用户名按照姓名首字母进行排序

时间:2023-11-15 13:04:53

相关推荐

IOS开发 汉字转拼音 把用户名按照姓名首字母进行排序

//第一步 汉字转拼音 有2种方法 一种是使用ChineseString 别人写的类 第二种是IOS自带的方法 我使用的便是第二种

NSMutableString *ms = [[NSMutableStringalloc]initWithString:model.contactNickName];

//带声仄 //不能注释掉

if (CFStringTransform((__bridgeCFMutableStringRef)ms, 0,kCFStringTransformMandarinLatin, NO)) {

// NSLog(@"pinyin: ---- %@", ms);

}

if (CFStringTransform((__bridgeCFMutableStringRef)ms, 0,kCFStringTransformStripDiacritics, NO)) {

NSString *bigStr = [ms uppercaseString]; // bigStr 是转换成功后的拼音

NSString *cha = [bigStr substringToIndex:1];

model.firstLetter = cha; // cha 是汉字的首字母

// NSLog(@"pinyin: %@ ======== %@ ====== %@",model.nickname,ms, cha);

}

//第二步 根据第一步获取到的 拼音首字母 对汉字进行排序

-(NSMutableArray *)userSorting:(NSMutableArray *)modelArr{

NSMutableArray *array = [[NSMutableArrayalloc] init];

for(int i='A';i<='Z';i++)

{

NSMutableArray *rulesArray = [[NSMutableArrayalloc] init];

NSString *str1=[NSStringstringWithFormat:@"%c",i];

for(int j=0;j<modelArr.count;j++)

{

CardBookModel *model = [modelArr objectAtIndex:j]; //这个model 是我自己创建的 里面包含用户的姓名 手机号 和 转化成功后的首字母

if([model.firstLetterisEqualToString:str1])

{

[rulesArray addObject:model]; //把首字母相同的人物model 放到同一个数组里面

[modelArr removeObject:model]; //model 放到 rulesArray 里面说明这个model 已经拍好序了 所以从总的modelArr里面删除

j--;

}else{

}

}

if (rulesArray.count !=0) {

[array addObject:rulesArray];

[indexArrayaddObject:[NSStringstringWithFormat:@"%c",i]]; //把大写字母也放到一个数组里面

}

}

if (modelArr.count !=0) {

[array addObject:modelArr];

[indexArray addObject:@"#"]; //把首字母不是A~Z里的字符全部放到 array里面 然后返回

}

return array;

}

这个是我做项目的时候 需要自定义通讯录写的,入行不长时间 还很稚嫩,希望不对的 请指出来

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。