NSParameterAssert参数断言宏

//宏声明
//Para条件参数断言宏
#define NSParameterAssert(condition) NSAssert((condition), @“Invalid parameter not satisfying: %@”, @#condition)

//宏调用
NSParameterAssert(condition)
condition:条件为真,处于普通执行模式下顺序继续执行/条件为假,切换进入debug模式

条件参数断言宏的调用促使数据的有效使用


断言评估条件,如条件为false,则调用当前所在线程的断点句柄块。任何线程都拥有自已的断点句柄块(NSAsserttionHandler 断言处理类的块实例对象)。当块本身实例被调用时,断言句柄中打印指令会打印错误信息,该错误信息中包含了事件名、类名等,抛出NSInternalInconsistencyException异常。
Assertions evaluate a condition and, if the condition evaluates to false, call the assertion handler for the current thread, passing it a format string and a variable number of arguments. Each thread has its own assertion handler, which is an object of classNSAssertionHandler. When invoked, an assertion handler prints an error message that includes method and class names (or the function name). It then raises anNSInternalInconsistencyException exception.
这个宏用于确认一个 Objective-C 的方法的有效性。简单提供参数作为条件就行。该宏评估这个参数,如果为 false ,它就打印一个错误日志信息,该信息包含了参数并且抛出一个异常。
This macro validates a parameter for an Objective-C method. Simply provide the parameter as the condition argument. The macro evaluates the parameter and, if it is false, it logs an error message that includes the parameter and then raises an exception.
如果定义了预处理宏 NS_BLOCK_ASSERTIONS 断言就被禁止了。所有的断点宏都返回 void。
Assertions are disabled if the preprocessor macro NS_BLOCK_ASSERTIONS is defined. All assertion macros return void.

猜你喜欢

转载自blog.csdn.net/yanhaijunyan/article/details/113737463
今日推荐