zoukankan      html  css  js  c++  java
  • iOS | 解决中文乱码

    在iOS开发中,多多少少的朋友在开发的过程中,测试数据的时候可能会碰到后台打印的时候不能正确的打印出正常的汉字,打印出一些影响判断的字符,经常需要查看数组中得元素是否是自己想要的,但是苹果并没有对直接打印数组中得中文作处理,直接打印就会出现一堆很讨厌的东西,解决其实很简单,就是需要通过为NSArray添加分类.

    可以在同一个类文件中书写两个类的声明,这样可以节省空间,因为是针对于同样的功能点.

    在.h文件中的声明

    
    #import <Foundation/Foundation.h>
    //数组的打印
    @interface NSArray (Log)
    
    @end
    //字典的打印
    @interface NSDictionary (Log)
    
    @end
    

    在.m文件中的实现

    //数组的实现
    #import "NSArray+Log.h"
    
    @implementation NSArray (Log)
    
    // 只需要在分类中,重写这个方法的实现,不需要导入分类文件就会生效
    - (NSString *)descriptionWithLocale:(id)locale
    {
        // 定义用于拼接字符串的容器
        NSMutableString *stringM = [NSMutableString string];
        
        // 拼接开头
        [stringM appendString:@"(
    "];
        
        // 拼接中间的数组元素
        [self enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
            
            [stringM appendFormat:@"	%@,
    ",obj];
            
        }];
        
        // 拼接结尾
        [stringM appendString:@")
    "];
        
        return stringM;
    }
    
    @end
    
    //字典的实现
    @implementation NSDictionary (Log)
    
    // 只需要在分类中,重写这个方法的实现,不需要导入分类文件就会生效
    - (NSString *)descriptionWithLocale:(id)locale
    {
        // 定义用于拼接字符串的容器
        NSMutableString *stringM = [NSMutableString string];
        
        // 拼接开头
        [stringM appendString:@"{
    "];
        
        // 遍历字典,拼接内容
        [self enumerateKeysAndObjectsUsingBlock:^(id  _Nonnull key, id  _Nonnull obj, BOOL * _Nonnull stop) {
            [stringM appendFormat:@"	%@ = %@;
    ",key,obj];
        }];
        
        // 拼接结尾
        [stringM appendString:@"}
    "];
        
        return stringM;
    }
    
    @end
    

    这两个文件需要用得时候可以直接复制进工程,不需要导入会自动的对数组和字典打印进行处理,使用相当方便,为我闲暇之余提供的一点小便利方法.

  • 相关阅读:
    浅谈工作流的作用
    WinForm上播放Flash文件
    C#反序列化 “在分析完成之前就遇到流结尾”
    UML类图详解
    关于C#中Thread.Join()的一点理解
    c# 反射的用法
    C#多线程学习笔记之(abort与join配合使用)
    UML用例图总结
    asp.net 发布到IIS中出现”处理程序“PageHandlerFactoryIntegrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”“错误的解决方法
    C#序列化和反序列化
  • 原文地址:https://www.cnblogs.com/JanChuJun/p/10102297.html
Copyright © 2011-2022 走看看