断言是指在开发期间使用的、让程序在运行时进行自检的代码(通常是一个子程序或宏)。NSAssert和NSParameterAssert在开发环境中经常被使用,调试和验证代码参数的完整性,断言为真,则表明程序运行正常,断言为假,则意味着它已经在代码中发现了意料之外的错误。一般XCode中的断言在Debug模式默认是开启的,Realse版本中是禁用的。
检查是否是debug模式开启断言,release模式关闭,Build Settings中的设置如下:
断言的使用
NSAssert的简单使用:
NSString *str = nil;
NSAssert(str != nil, @"字符串错误");
运行结果:
Ceshi[433:15358] *** Assertion failure in -[LoginView bindViewModel], /Ceshi/ViewController/login/LoginView.m:209
Ceshi[433:15358] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '字符串错误'
*** First throw call stack:
(0x1c1a1f180 0x1c0bf79f8 0x1c193888c 0x1c23fcb38 0x1009d0628 0x1009