zoukankan      html  css  js  c++  java
  • 重写NSArray与NSDictionary的descriptionWithLocale方法

    更新1--2017年9月7日
    最近发现,自从升级到Xcode8以后,字典和数组的descriptionWithLocale都不再被调用。后来使用
    - (NSString *)descriptionWithLocale:(id)locale indent:(NSUInteger)level来取代,一切又恢复到正常。望周知。

    重写NSArray的descriptionWithLocale方法:

    NSArray+log.h

    #import <Foundation/Foundation.h>
    @interface NSArray (log)
    @end
    

     NSArray+log.m

    #import "NSArray+log.h"
    @implementation NSArray (log)
    
    - (NSString *)descriptionWithLocale:(id)locale
    {
        NSMutableString *string = [NSMutableString string];
        
        // 开头有个[
        [string appendString:@"[\n"];
        
        // 遍历所有的元素
        [self enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
            [string appendFormat:@"\t%@,\n", obj];
        }];
        
        // 结尾有个]
        [string appendString:@"]"];
        
        // 查找最后一个逗号
        NSRange range = [string rangeOfString:@"," options:NSBackwardsSearch];
        if (range.location != NSNotFound)
            [string deleteCharactersInRange:range];
        
        return string;
    }
    
    @end
    

    重写NSDictionary的descriptionWithLocale方法:

    NSDictionary.h

    #import <Foundation/Foundation.h>
    @interface NSDictionary (log)
    @end
    

    NSDictionary.m

    #import "NSDictionary+log.h"
    @implementation NSDictionary (log)
    
    - (NSString *)descriptionWithLocale:(id)locale
    {
        NSMutableString *string = [NSMutableString string];
        
        // 开头有个{
        [string appendString:@"{\n"];
        
        // 遍历所有的键值对
        [self enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
            [string appendFormat:@"\t%@", key];
            [string appendString:@" : "];
            [string appendFormat:@"%@,\n", obj];
        }];
        
        // 结尾有个}
        [string appendString:@"}"];
        
        // 查找最后一个逗号
        NSRange range = [string rangeOfString:@"," options:NSBackwardsSearch];
        if (range.location != NSNotFound)
            [string deleteCharactersInRange:range];
        
        return string;
    }
    
    @end
    
  • 相关阅读:
    路径
    aspx.cs调用js方法
    计算字符串中每种字母出现的次数
    [转载]获取2个集合List<T>的共同元素
    [转载]行列转换
    [转载]UNION合并查询
    [转载]Case When Then
    [转载]CAST-CONVERT两个函数进行类型转换时的异同点
    [转载]404错误页面设置
    [转载]JQ小知识
  • 原文地址:https://www.cnblogs.com/cchHers/p/5820170.html
Copyright © 2011-2022 走看看