美文网首页
Xcode调试技巧

Xcode调试技巧

作者: coder_hong | 来源:发表于2016-11-03 11:01 被阅读11次

    重写模型的debugDescription方法,利用po调试

    // 重写对象的debugDescription 利用PO 调试模型
    - (NSString *)debugDescription
    {
    //    return [NSString stringWithFormat:@"<%@:%p>:%@",[self class],&self,@{@"name":_name,@"age":_age}];
        //初始化一个字典
        NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];
        
        //得到当前class的所有属性
        uint count;
        objc_property_t *properties = class_copyPropertyList([self class], &count);
        
        //循环并用KVC得到每个属性的值
        for (int i = 0; i<count; i++) {
            objc_property_t property = properties[i];
            NSString *name = @(property_getName(property));
            id value = [self valueForKey:name]?:@"nil";//默认值为nil字符串
            [dictionary setObject:value forKey:name];//装载到字典里
        }
        //释放
        free(properties);
        //return
        return [NSString stringWithFormat:@"<%@: %p> -- %@",[self class],self,dictionary];
        
    }
    

    p:可以用来打印基本数据类型。

    bt:打印当前线程堆栈信息

    如果要打印所以线程堆栈信息,使用:bt all即可

    image:常用来寻找栈地址对应代码位置:

    例如: image lookup --address 0x0000000104c25550

    相关文章

      网友评论

          本文标题:Xcode调试技巧

          本文链接:https://www.haomeiwen.com/subject/gavbuttx.html