ios nslog 打印字典为中文

#import <Foundation/Foundation.h>

@implementation NSDictionary (Log)
- (NSString *)descriptionWithLocale:(id)locale
{
    NSMutableString *str = [NSMutableString string];

    [str appendString:@"{\n"];

    // 遍历字典的所有键值对
    [self enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
        [str appendFormat:@"\t%@ = %@,\n", key, obj];
    }];

    [str appendString:@"}"];

    // 查出最后一个,的范围
    NSRange range = [str rangeOfString:@"," options:NSBackwardsSearch];
    if (range.length != 0) {
        // 删掉最后一个,
        [str deleteCharactersInRange:range];
    }

    return str;
}
@end

@implementation NSArray (Log)
- (NSString *)descriptionWithLocale:(id)locale
{
    NSMutableString *str = [NSMutableString string];

    [str appendString:@"[\n"];

    // 遍历数组的所有元素
    [self enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
        [str appendFormat:@"%@,\n", obj];
    }];

    [str appendString:@"]"];

    // 查出最后一个,的范围
    NSRange range = [str rangeOfString:@"," options:NSBackwardsSearch];
    if (range.length != 0) {
        // 删掉最后一个,
        [str deleteCharactersInRange:range];
    }

    return str;
}
@end

  

时间: 2024-07-29 23:40:18

ios nslog 打印字典为中文的相关文章

iOS 控制台打印unicode 转中文汉字 UTF8String

今天查看代码数据结构,就在控台直接打印了,soGa,我看到了什么!!!! 于是乎想到了不对劲,不对呀,之前打印都是 UTF8String的呀,怎么会这样,百思不得其姐,看了一下封装的网络类,SoGa,只写了简单的序列化,么有看到 encodingUTF8的字样,????难道要我一个一个写上去吗?辣么多接口~ 于是乎,想了一圈,还是没想到~于是乎~我就使劲盯着请求类看,就像看仇人一样,使劲看着它,哇哈哈哈~想到了,重写NSLog吧~ #ifdef DEBUG #define NSLog(FORMA

iOS ---不一样的NSLog打印(定位打印)

在iOS开发过程中,调试是很重要的过程,而除了各种断点调试(普通断点.条件断点.全局断点)之外,似乎NSLog是我们调试最常用的方法,当然,也是最简单朴素的寻debug方法. 在项目中,我们常使用的NSLog的语句无外乎以下一种: NSLog(@"打印字符串:%@",name);   NSLog(@"打印整形:%i",number);//或者 %li ; %ld ; %d   NSLog(@"打印字符:%c",c);   NSLog(@"

iOS Bluetooth 打印小票(二)

在上一篇中介绍了打印小票所需要的命令,这一篇介绍Bluetooth连接蓝牙和打印小票的全过程. CoreBluetooth的封装 因为CoreBluetooth中的代理太多,而每一次操作又比较依赖上一次操作的结果,方法又比较零散,所以我做了粗略封装,把代理改成了block方式回调. 1.获取蓝牙管理单例 HLBLEManager *manager = [HLBLEManager sharedInstance]; __weak HLBLEManager *weakManager = manager

IOS数组、字典、NSNumber 新写法—— @[]、@{}

IOS数组.字典.NSNumber 新写法—— @[].@{} //标准写法 NSNumber * number = [NSNumber numberWithInt:1]; NSArray * array = [NSArray arrayWithObjects:@"one", @"two", nil]; NSDictionary * dict = [NSDictionary dictionaryWithObjectsAndKeys:@"value1&quo

release下不输出NSLog打印的内容,debug下才输出。

软件运行越来越慢,突然在想,是不是因为NSLog,太多的原因.因为自己总是喜欢用NSLog打印出变量,然后,在进行调试程序,找Bug. 网上查找资料,果然,和这个还是有点关系的. 直接上代码,使其在release下不输出NSLog打印的内容,debug下才输出. 要注意,这部分代码是要写在prefix.pch中的. // 在debug模式下输出NSLog,在release模式下不输出NSLog #ifndef __OPTIMIZE__ #define NSLog(...) NSLog(__VA_

openerp 打印报表pdf中文乱码解决办法

环境 : ubuntu 12.04 OpenErp 7.0 设置好了语言为中文简体 ,此时打印 报表,中文显示为乱码. 首先 cd /usr/share/fonts/truetype/ 按照网上的方法 下载字体库: wget http://okay.googlecode.com/files/DejaVuSans-Oblique.ttf wget http://okay.googlecode.com/files/DejaVuSans-BoldOblique.ttf wget http://okay

native-base中Input,Textarea等组件在ios平台下不能输入中文

在上文react-native中TextInput在ios平台下不能输入中文已经解决. 但是在native-base中Input和Textarea都存在这样的问题.为了不要写多个组件,封装以下代码: import React from 'react'; import PropTypes from 'prop-types'; import { Platform, } from 'react-native'; import { Textarea, Input, } from 'native-base

【iOS】NSLog 打印 BOOL 类型值

这个问题以前没在意,刚偶然打印,发现有些问题,上网查了下,发现是这么搞的: NSLog(@"%@", isEqual?@"YES":@"NO");

iOS开发 替换NSLog打印设置

在XCode做开发调试时往往需要打印一些调试信息做debug用,大家知道当打印信息的地方多了之后在模拟器上跑可能不会有什么问题,因为模拟器用的是电脑的硬件但是当应用跑在设备上时这些输出语句会在很大程度上影响应用的性能,针对这种问题可以写一些宏来控制这些调试信息的输出. 在release版本禁止输出NSLog内容 因为NSLog的输出还是比较消耗系统资源的,而且输出的数据也可能会暴露出App里的保密数据,所以发布正式版时需要把这些输出全部屏蔽掉. 我们可以在发布版本前先把所有NSLog语句注释掉,