Log的使用技巧——解决字典和和数组的直接打印时问题
2015-10-27 15:08
567 查看
由于Xcode对打印集合时没有做本地化设置,所以遍历的时候能打印中文字符 当直接打印集合的时候就会就将中文转化为Unicode码。为了解决这个问题,我们分别为NSArray和NSDictionary写两个分类拉进工程即可。
因为打印时,默认是调用从NSObject继承而来的- (NSString *)descriptionWithLocale:(id)locale方法,所以重写这个方法即可。
新建工程代码如下:
分类的.h文件如下:
新建分类后 后台打印结果如下:
因为打印时,默认是调用从NSObject继承而来的- (NSString *)descriptionWithLocale:(id)locale方法,所以重写这个方法即可。
新建工程代码如下:
分类的.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 *strM = [NSMutableString stringWithString:@"(\n"]; [self enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { [strM appendFormat:@"\t%@,\n", obj]; }]; [strM appendString:@")"]; return strM; } @end @implementation NSDictionary (Log) - (NSString *)descriptionWithLocale:(id)locale { NSMutableString *strM = [NSMutableString stringWithString:@"{\n"]; [self enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) { [strM appendFormat:@"\t%@ = %@;\n", key, obj]; }]; [strM appendString:@"}\n"]; return strM; } @end控制器调用如下:
// // ViewController.m // Log的使用技巧 // // Created by apple on 15/10/27. // Copyright (c) 2015年 LiuXun. All rights reserved. // #import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; /*由于Xcode对打印集合时没有做本地化设置,所以遍历的时候能打印中文字符 当直接打印集合的时候就会就将中文转化为Unicode码 */ NSArray *array = @[@"张三", @"list", @"123"]; NSLog(@"array= %@", array); for (NSString *str in array) { NSLog(@"%@", str); } } @end没有新建分类之前,打印结果如下:
新建分类后 后台打印结果如下:
相关文章推荐
- 解析UML九种图
- nagios 监控 linux主机的信息
- linux c 字符串到time_t时间转换
- leetcode 268 : Missing Number
- QT5入门之18 -文件读写
- 用Picasso的RequestHandler进行自定义加载的方法
- 安卓开发中用eclipse提交代码到github遇到的rejected-non-fast-forward问题
- Mongodb3.0配置文件
- SharePoint 2010 IT Professional -- Recycle Bin
- IntelliJ Idea 常用快捷键列表
- SQL 常用
- 推荐系统的总结,主要是讲述矩阵分解在协同滤波系统中的作用
- Android面试题
- 动态视图
- Leetcode -- Insert Interval
- Java连接MySQL数据库
- order by
- 通过Ajax两种方式讲解Struts2接收数组表单的方法
- 记录自己的工作
- jQuery Validation Engine表单验证为false