目的

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. ASP.NET Web Application中使用链接文件

    最近重构一个内部的平台系统,作为一个平台,其下有几个子系统,每个子系统有自己的网站系统.而每个网站使用的是统一的风格,统一的验证机制,反馈系统,等等.所以,为了避免几个子系统中重复出现相同的资源或文件 ...

  2. JMeter安装JSON Path Extractor插件

    下载地址:https://jmeter-plugins.org/wiki/PluginsManager/ 先下载jmeter-plugins-manager-1.3.jar,点击下图中的JAR fil ...

  3. Matplotlib绘图属性(1)

    [matplotlib颜色.形状.线型等详细配置方法] #1.颜色(三种方法)-color 八种内置颜色及其缩写: b:blue <蓝色> c:cyan <青色> g:gree ...

  4. x86 保护方式 简介 一

    80386   三种工作方式   实模式    保护模式和虚拟86模式   只有在保护方式下  全部32条地址线才有效   可以寻址高达4g字节的物理地址空间 超过1m的内存空间  被成为扩展的内存空 ...

  5. Leetcode 357.计算各个位数不同的数字个数

    计算各个位数不同的数字个数 给定一个非负整数 n,计算各位数字都不同的数字 x 的个数,其中 0 ≤ x < 10n . 示例: 输入: 2 输出: 91 解释: 答案应为除去 11,22,33 ...

  6. system sys,sysoper sysdba 的区别

    --===================================== -- system sys,sysoper sysdba 的区别 --========================= ...

  7. JSON.parse与eval区别

    两种方式都可以解析json字符串,不过有时候JSON.parse解析会失败,失败原因有多种,下面会指出一种. JSON.parse()解析json格式的数据,会对要解析的字符串进行格式检查,如果格式不 ...

  8. 【2018.9.26】K-D Tree详解

    网上对K-D-Tree的讲解不尽清晰,我学了很久都不会写,这里新开一文做一些讲解. 1.K-D-Tree是什么? K-DTree 即 K-Dimensional-Tree,常用来作空间划分及近邻搜索, ...

  9. Linux(6):定时任务

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

  10. [MFC] CString小用例

    在实际项目中需要对数字转成的字符串进行格式处理, 如: 50.500000,需要转化成50.5; 1.00000,需要转化成1, 对于编号而言要求都是4位,不足前面补0. 如1转成0001,222转成 ...