美文网首页iOS 开发 iOS DeveloperiOS,object-c和swift开发
ios拓展3-断言NSAssert()调试程序中的Bug

ios拓展3-断言NSAssert()调试程序中的Bug

作者: Abler | 来源:发表于2016-07-11 00:03 被阅读86次

    NSAssert()是一个宏,用于开发阶段调试程序中的Bug.

    #define NSAssert(condition, desc, ...) 
    /*
    condition是条件表达式,值为YES或NO;desc为异常描述,通常为NSString。
    当conditon为YES时程序继续运行,为NO时,则抛出带有desc描述的异常信息。
    NSAssert()可以出现在程序的任何一个位置。
    */
    

    具体事例如下:

    - (void)viewDidLoad {
        [super viewDidLoad];
        [self assert:@"a"];
    }
    - (void)assert:(NSString *)str {
        
        NSAssert(str, @"str is nil");
    
        if (str) {
            NSLog(@"%@",str);
        }else{
            NSLog(@"error");
        }
    }
    
    [self assert:@"a"]; 调用

    如果调用如下:

    - (void)viewDidLoad {
        [super viewDidLoad];
        [self assert:nil];
    }
    
    程序会直接报错,
    tips: 我更喜欢 断点po 或者 直接 NSLog,  看到抛出异常很难受
    

    相关文章

      网友评论

        本文标题:ios拓展3-断言NSAssert()调试程序中的Bug

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