目的

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 中文排序 及输出的更多相关文章

  1. OC数组中文排序

    -(void)sortStudentInfo { if(studentInfoArray && studentInfoArray.count > 0) { for(TWDetai ...

  2. TreeMap中文排序,TreeMap倒序输出排列

    1.TreeMap集合倒序排列 import java.util.Comparator; /** * 比较算法的类,比较器 * @author Administrator * */ public cl ...

  3. Python 根据两个字段排序 中文排序 汉字排序 升序 降序

    Python3写法 代码 # -*- coding: utf-8 -*- # 需求:年龄倒序,姓名正序 from itertools import chain from pypinyin import ...

  4. SQLite中文排序

    定义一个类: using System.Data.SQLite; namespace DAL { /// <summary> /// SQLite中文排序 /// </summary ...

  5. OC NSArray 数组

    # OC NSArray 数组 NSArray常用方法 获取数组中第一位元素 array.firstObject 获取数组中最后一个元素 array.lastObject 获取数组中指定索引下标的元素 ...

  6. 转!!mysql order by 中文排序

    1. 在MySQL中,我们经常会对一个字段进行排序查询,但进行中文排序和查找的时候,对汉字的排序和查找结果往往都是错误的. 这种情况在MySQL的很多版本中都存在. 如果这个问题不解决,那么MySQL ...

  7. Python使用中文注释和输出中文(原创)

    刚开始学习python,需要在Python中注释中文和输出中文,现在开始尝试: 仅为初步学习参考,高手请绕行. -------------------------------------------- ...

  8. PHP/MYSQL UTF8 中文排序

    1. 需要在php数组中用中文排序,但是一般使用utf8格式的文件,直接用asort排序不行.用gbk和gb2312可以.这跟几种格式的编码有关系.gbk和gb2312本身的编码就是用拼音排序的. f ...

  9. [原]Java面试题-将字符串中数字提取出来排序后输出

    [Title][原]Java面试题-将字符串中数字提取出来排序后输出 [Date]2013-09-15 [Abstract]很简单的面试题,要求现场在纸上写出来. [Keywords]面试.Java. ...

随机推荐

  1. nodejs 如何发送一个带JSON的GET请求?

    GET /megacorp/employee/_search { "aggs" : { "all_interests" : { "terms" ...

  2. 2017 ACM/ICPC Asia Regional Shenyang Online

    cable cable cable Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  3. System.TypeInitializationException

    在连接数据库时,提示System.TypeInitializationException 数据库的连接字符串放在config文件中,而config中有两个文件,起初放在debug.comfig中,启动 ...

  4. iOS学习笔记05-触摸事件

    一.事件分发处理[由外到内] 在iOS中发生触摸后,事件会加到UIApplication事件队列,UIApplication会从事件队列取出最前面的事件进行分发处理,通常会先分发给主窗口,主窗口会调用 ...

  5. Codeforces Round #354 (Div. 2)——C. Vasya and String(尺取)

    C. Vasya and String time limit per test 1 second memory limit per test 256 megabytes input standard ...

  6. Linux(6):定时任务

    定时任务 定时任务的说明和分类 # 定时任务分类: 1. crond(crontab) 定时任务软件(软件包 cronie) 2. atd 运行一次 3. anacron 非7*24小时运行的服务器 ...

  7. Codevs 1026 逃跑的拉尔夫

     时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 年轻的拉尔夫开玩笑地从一个小镇上偷走了一辆车,但他没想到的是那辆车属于警察局,并且 ...

  8. Codeforces 432D Prefixes and Suffixes kmp

    手动转田神的大作:http://blog.csdn.net/tc_to_top/article/details/38793973 D. Prefixes and Suffixes time limit ...

  9. MarsEdit 快速插入代码

    <div class="cnblogs_Highlighter"> <pre class="brush:objc;gutter:true;"& ...

  10. BZOJ——1649: [Usaco2006 Dec]Cow Roller Coaster

    http://www.lydsy.com/JudgeOnline/problem.php?id=1649 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 7 ...