zoukankan      html  css  js  c++  java
  • 死去活来的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:@"(
    "];
        
        // 遍历数组,self就是当前的数组
        for (id obj in self) {
            // 在拼接字符串时。会调用obj的description方法
            [strM appendFormat:@"	%@,
    ", 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
    



  • 相关阅读:
    POJ2524+并查集
    POJ3697+BFS+hash存边
    POJ1151+线段树+扫描线
    POJ2528+线段树
    ubuntu 和 win7 远程登陆 + vnc登陆
    POJ3690+位运算
    POJ3283+字典树
    POJ3282+模拟
    POJ2349+prim
    2016.6.13
  • 原文地址:https://www.cnblogs.com/wzjhoutai/p/6836931.html
Copyright © 2011-2022 走看看