码迷,mamicode.com
首页 > 编程语言 > 详细

NSArray利用Cocoa框架进行汉字排序

时间:2015-07-18 18:42:13      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:object-c   nsarray打印汉字   cocoa   排序   

NSArray利用Cocoa框架进行汉字排序

NSString有一个函数localizedCompare:,它的功能是通过自身与给定字符串的比较,返回一个本地化的比较结果,也就是说这个函数是支持汉字比较的。

进一步localizedCompare:只是字符串与字符串的比较,我们要让NSArray数组通过按关键字为汉字字符串排序,我们继续在NSArraySDK上下功夫,我们发现除了sortdArrayUsingDescriptors:通过NSSortDescriptor排序;还有sotedArrayUsingFunction:context:,这个函数支持我们自定义一个函数制定比较规则,返回比较结果,这样问题一下便解决了。我先把代码贴出来。


NSInteger nickNameSort(id user1, id user2, void *context)

{

    User *u1,*u2;

    //类型转换

    u1 = (User*)user1;

    u2 = (User*)user2;

    return  [u1.nickName localizedCompare:u2.nickName];

   

    

//    在需要比较地方,调用比较函数

    sortArr = [arr sortedArrayUsingFunction:nickNameSort context:NULL];


这样做会有几方面的好处:1 支持多个汉字按字母序排序(若第一个字的第一个字母相同,则按第一个字的第二个字母比较,若第一个字的字母完全相同,按第二个字的首字母继续排序)。 2 原本可能需要保存汉字拼音的地方,现在不需要了。 3 可以通过对nickNameSortde进一步定制,完成更复杂的比较,比如先比较会员状态,在按姓名字母序完成比较。4 整体结构简单 使用的都是CocaTouch框架下的的方法。



版权声明:本文为博主原创文章,未经博主允许不得转载。

NSArray利用Cocoa框架进行汉字排序

标签:object-c   nsarray打印汉字   cocoa   排序   

原文地址:http://blog.csdn.net/judy_luo/article/details/46943637

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!