Xcode 断言的使用(一)

2017-08-10  本文已影响36人  ZYiDa

昨天听别人讲到断言,我感到很好奇,今天忙完别的事情后就了解和尝试使用一下,以后会陆续把单元测试以及断言相关的内容贴出来。

格式和说明:

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: '识别结果数据不能为空!'
上一篇下一篇

猜你喜欢

热点阅读