NSDictionary和NSArray打印中文出现乱码的解决方案

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NSDictionary和NSArray打印中文出现乱码的解决方案相关的知识,希望对你有一定的参考价值。

/*

  新建一个分类,打印带中文的NSDictionary和NSArray就不会再出现乱码了:

*/

#import <Foundation/Foundation.h>

@implementation NSDictionary (Log)

 

-(NSString *)descriptionWithLocale:(id)locale

{

    NSArray *allKeys = [self allKeys];

    NSMutableString *str = [[NSMutableString alloc] initWithFormat:@"{\n"];

        for (NSString *key in allKeys) {

             id value= self[key];

             [str appendFormat:@"\t%@ = %@;\n",key, value];

        }

    [str appendString:@"}"];

    

    return str;

}

@end

 

@implementation NSArray  (Log)

-(NSString *)descriptionWithLocale:(id)locale

{

    NSMutableString *str = [NSMutableString string];

    

    //拼接

    [str appendString:@"("];

    

    [self enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {

        [str appendString:[NSString stringWithFormat:@"\n\t%@,",obj]];

    }];

    

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

    

    //NSBackwardsSearch从后往前搜索

    NSRange rang =  [str rangeOfString:@"," options:NSBackwardsSearch];

    if (rang.location != NSNotFound) {

        [str deleteCharactersInRange:rang];

    }

    

    return str;

}

@end

 

以上是关于NSDictionary和NSArray打印中文出现乱码的解决方案的主要内容,如果未能解决你的问题,请参考以下文章

NSArray 和 NSDictionary

NSArray 中的 NSDictionary

带有 NSArray 的 UITableview 包含 NSDictionary 和 NSDictionary 包含另一个 NSDictionary

设置嵌套的 NSDictionary 和 NSArray 值

c# 中 NSMutableDictionary()、NSMutableArray()、NSArray 和 NSDictionary 的等价物是啥?

更新/更改存储在 NSArray 中的 NSDictionary 键的值