昨天听别人讲到断言,我感到很好奇,今天忙完别的事情后就了解和尝试使用一下,以后会陆续把单元测试以及断言相关的内容贴出来。
格式和说明:
1、格式: NSAssert(isRealName == YES, @"不是真实的名字!");
2、说明,如果满足isRealName == YES这个条件时,能正常运行通过;如果不满足这个条件,程序则会运行崩溃,并输出后面的提示。
3、断言只在Debug模式下使用,Release模式下不执行。
使用案例:
[RequestManager requestForFxxCxxxWithImageData:[self dictionaryToJsonStringWithDic:dic]
success:^(NSDictionary *success) {
//识别数据为空(也就是返回结果里面没有任何数据)的时候 会报错。
NSAssert(![success isEqualToDictionary:[NSDictionary dictionary]], @"识别结果数据不能为空!");
}
fail:^(NSError *fail) {
}];
说明:
上面是我写的网络请求,因为success为空,里面没有任何数据时,所以运行崩溃,并输出如下提示:
2017-08-10 11:20:19.329 XXOO[6894:2515819] *** Assertion failure in -[XXController selectedToRecognizeFace], /Users/XX/Desktop/XX/XXOO/XXOO/Sections/XXF/XXController.m:443
2017-08-10 11:20:19.330 XXOO[6894:2515819] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '识别结果数据不能为空!'
网友评论