iOS 谈谈定位项目里的功能及BUG

接收别人的项目,必定是要增加一些新功能或者优化界面或者修复BUG,好像废话了,说下我的经验吧

场景一:不明飞行物(视图)

视图上没有文字,刚上手的代码不知道哪个viewController,又臭又长的代码不想看,找起来麻烦

解决:

1.在模拟器上command+s,截图,PS上取色,全局搜颜色值,不要一分钟搞定
2.推荐使用Reveal,3D观察你的UI,具体用法百度

场景二:数据复杂

信息类型的app,错综复杂的数据结构让你烦恼,要是没有文档呢,是不是要崩溃了?

解决:

自定义Log,打印出JSON格式的字符串,放在http://www.bejson.com/jsonviewernew/
上面,瞬间理清楚了,我基于别人Foundation+Log.m分类做了修改,希望能帮到你

//
//  Foundation+Log.m
//  JUJUIM_Demo
//
//  Created by maqian on 15/8/31.
//  Copyright (c) 2015年 MaQian. All rights reserved.
//

#import 

@implementation NSDictionary (Log)
- (NSString *)descriptionWithLocale:(id)locale
{
    NSMutableString *str = [NSMutableString string];
    
    [str appendString:@"{\n"];
    
    // 遍历字典的所有键值对
    [self enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
        
        NSString *string = [NSString stringWithFormat:@"%@",obj];
        if ([string hasPrefix:@"{"] || [string hasPrefix:@"["]) {
            [str appendFormat:@"\t\"%@\" : %@,\n", key, obj];

        }else{
            [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

刚想到写这么个文章,有时间在写了,coding...

你可能感兴趣的:(iOS 谈谈定位项目里的功能及BUG)