死去活来的OC NSArray 中文排序 及输出
目的
1、NSArray 能够支持中文排序
2、NSLog 能够直接输出 NSArray 内的中文(事实上 java 直接打印数组也不能显示内容哈)
又是死去活来的搞了1个小时,分类实现。废话少说,上代码
终于实现方式叫非正式协议(类目/分类)(就是不用动原来的类,新写类来实现原有类没有的功能),但要注意以下的
sortedLocal
方法但是覆盖原有方法,一定注意使用!
main.m
#import <Foundation/Foundation.h
#import "NSArray+Log.h" int main(int argc, const char * argv[]) { NSArray * arr = [NSArray arrayWithObjects:@"王二麻",@"张三",@"李四", nil];
NSArray * arr1 =[arr sortedLocal];
NSLog(@"%@",arr1 );
}
NSArray+Log.h
#import <Foundation/Foundation.h> @interface NSArray (Log)
- (NSArray *)sortedLocal;
@end
NSArray+Log.m
#import "NSArray+Log.h" @implementation NSArray (Log) - (NSString *)descriptionWithLocale:(id)locale
{
// 遍历数组中的全部内容,将内容拼接成一个新的字符串返回
NSMutableString *strM = [NSMutableString string]; [strM appendString:@"(\n"]; // 遍历数组,self就是当前的数组
for (id obj in self) {
// 在拼接字符串时。会调用obj的description方法
[strM appendFormat:@"\t%@,\n", obj];
} [strM appendString:@")"]; return strM;
} - (NSArray *)sortedLocal{
NSArray* sortedArray = [self sortedArrayUsingComparator:^(id a, id b)
{
NSString* s1 = (NSString*)a;
NSString* s2 = (NSString*)b;
return [s1 localizedCompare: s2]; }];
return sortedArray;
} @end
死去活来的OC NSArray 中文排序 及输出的更多相关文章
- OC数组中文排序
-(void)sortStudentInfo { if(studentInfoArray && studentInfoArray.count > 0) { for(TWDetai ...
- TreeMap中文排序,TreeMap倒序输出排列
1.TreeMap集合倒序排列 import java.util.Comparator; /** * 比较算法的类,比较器 * @author Administrator * */ public cl ...
- Python 根据两个字段排序 中文排序 汉字排序 升序 降序
Python3写法 代码 # -*- coding: utf-8 -*- # 需求:年龄倒序,姓名正序 from itertools import chain from pypinyin import ...
- SQLite中文排序
定义一个类: using System.Data.SQLite; namespace DAL { /// <summary> /// SQLite中文排序 /// </summary ...
- OC NSArray 数组
# OC NSArray 数组 NSArray常用方法 获取数组中第一位元素 array.firstObject 获取数组中最后一个元素 array.lastObject 获取数组中指定索引下标的元素 ...
- 转!!mysql order by 中文排序
1. 在MySQL中,我们经常会对一个字段进行排序查询,但进行中文排序和查找的时候,对汉字的排序和查找结果往往都是错误的. 这种情况在MySQL的很多版本中都存在. 如果这个问题不解决,那么MySQL ...
- Python使用中文注释和输出中文(原创)
刚开始学习python,需要在Python中注释中文和输出中文,现在开始尝试: 仅为初步学习参考,高手请绕行. -------------------------------------------- ...
- PHP/MYSQL UTF8 中文排序
1. 需要在php数组中用中文排序,但是一般使用utf8格式的文件,直接用asort排序不行.用gbk和gb2312可以.这跟几种格式的编码有关系.gbk和gb2312本身的编码就是用拼音排序的. f ...
- [原]Java面试题-将字符串中数字提取出来排序后输出
[Title][原]Java面试题-将字符串中数字提取出来排序后输出 [Date]2013-09-15 [Abstract]很简单的面试题,要求现场在纸上写出来. [Keywords]面试.Java. ...
随机推荐
- ntdsutil 清理弃用服务器-----待验证
例子是这样的: 一个森林里有两个树,mm.com和cc.com,分别有dc www.mm.com和vdc.cc.com, cc.com域的控制器崩溃,不想恢复,要彻底删除这个域,由于vdc.cc.co ...
- 自定义iOS上双击Home键图切换
如果双击Home,会来到iOS App的switcher页面,在这儿列出了当前系统挂起的App, 上面有每个App的切屏,相信大家都熟悉这个东东了.它其实是每个App在挂起前,对App后个载屏. 那么 ...
- Azure Storage Blob文件名区分大小写
最近在使用Azure Storage的时候发现Storage的命名是区分大小写的,导致我们系统在更新图片的时候有时候更新不上,最终通过判断处理文件名解决. 因此我们在使用Storage需要注意一下文件 ...
- 两周多学完Java 23种设计模式
最近两周任务不是很繁重,对于一个刚入职4个月的菜鸟来说,学习设计模式并灵活使用简直天方夜谭:但是当我询问我导师需要学点啥的时候?“<Java设计模式>,这个必须要学”,一句简单粗略的 ...
- K-D tree入门
久仰K-D tree大名已久,终于在合适的时候遇见了合适的水题入了坑入了门 K-D tree是什么 K-D tree是什么? 按名字上翻译来就是K维的树,就是一个用来维护K维空间的点的平衡二叉树 K- ...
- K-lord #3 (组合数学)
题目描述 如图,设一个圆分成 n 个扇形 S1 ... ,Sn (扇形大小不一样),现用 k 种不同的颜色对这 n 个扇形进行染色 ( n>=3 , k>=3 ); 每一个扇形染一种颜色, ...
- plsql + 客户端 连接oracle数据库
一. 目录结构D:\oracle\instantclient_11_2D:\oracle\instantclient_11_2\tnsnames.ora 二. 环境变量 NLS_LANG = SIMP ...
- solus系统配置
#更新软件源 清华稳定源 sudo eopkg ar Tuna https://mirrors.tuna.tsinghua.edu.cn/solus/shannon/eopkg-index.xml 清 ...
- 数学知识巧学JCF(Java Collections framework)
不知你是否还记得高中我们学过的集合,映射,函数,数学确实很牛逼,拿它来研究java集合类,轻而易举的就把知识理解了.本篇文章适合初学java集合类的小白,也适合补充知识漏缺的学习者,同时也是面试者可以 ...
- git(三):第一次github了解使用
第一次使用github,看了一下使用说明,创建第一个repository,以后还要多学习. 一.Github创建一个新仓库 ······Creat a new repository 创建一个新仓库,点 ...