NSAssert断言

        //适用于调试代码,当程序执行出错时,程序立即停止,并抛出异常;

        //这是一个宏 --称之为  断言;

        int x = 1;

        NSAssert(x!=0, @"**********************不能为0");

        

        /*

         1: 如上代码,当 !=0时,不会打印上述 不能为0

         2:当 x=0 时,就会打印上述信息,并程序立即抛出异常;

         

         */

内部实现---------

  

#define NSAssert(condition, desc, ...)	\
    do {				\
	__PRAGMA_PUSH_NO_EXTRA_ARG_WARNINGS \
	if (!(condition)) {		\
	    [[NSAssertionHandler currentHandler] handleFailureInMethod:_cmd \
		object:self file:[NSString stringWithUTF8String:__FILE__] \
	    	lineNumber:__LINE__ description:(desc), ##__VA_ARGS__]; \
	}				\
        __PRAGMA_POP_NO_EXTRA_ARG_WARNINGS \
    } while(0)

  

原文地址:https://www.cnblogs.com/cocoajin/p/3119261.html