General
If you’re used to Unix or Linux development, you’re accustomed to global macros like NDEBUG
and DEBUG
, and expect them to be set for you automatically.
If the argument to the standard C assert()
macro is zero, it halts the program. If NDEBUG
is set, assert()
does nothing, so you can publish code that may still exhibit the bug you put in the assertion for, but at least it won’t crash.
The NS_BLOCK_ASSERTIONS
macro does the same with Cocoa’s NSAssert
family of assertion macros.
Many developers like to define a DEBUG
macro to guard logging and assertion code. It’s not a standard macro, but it’s very common.
Xcode’s project templates define ...
Get Xcode 5 Start to Finish: iOS and OS X Development now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.