首先,NSAssert 是 foundation.framework 框架中的一个宏定义,作为断点检查的条件信息。如果给他一个 false 条件,会生成一个断点检查。
Generates an assertion if a given condition is false.
Declaration 声明
OBJECTIVE-C
#define NSAssert(condition, desc, ...)
Parameters 参数
condition |
An expression that evaluates to 值为 YES 或 NO 的表达式 |
desc |
An |
... |
The arguments displayed in the |
Discussion
The NSAssert
macro evaluates the condition and serves as a front end to the assertion handler.
Each thread has its own assertion handler, which is an object of class NSAssertionHandler
. When invoked, an assertion handler prints an error message that includes the method and class names (or the function name). It then raises an NSInternalInconsistencyException
exception. If condition
evaluates to NO
, the macro invokes handleFailureInMethod:object:file:lineNumber:description:
on the assertion handler for the current thread, passing desc
as the description string.
This macro should be used only within Objective-C methods.
Assertions are disabled if the preprocessor macro NS_BLOCK_ASSERTIONS
is defined.
IMPORTANT
Do not call functions with side effects in the condition
parameter of this macro. The condition
parameter is not evaluated when assertions are disabled, so if you call functions with side effects, those functions may never get called when you build the project in a non-debug configuration.
NOTE
Not all release configurations disable assertions by default.