Objective-C preprocessor paranoia
I am always deathly afraid of test code working its way into a release app. Usually for me this happens when I am trying to optimize a portion of the code by modifying something that is already there and working, which usually leads to something like this in my code during development:
//#define SAFE_OPTION_1 //#define RISKY_OPTION_2 #define DANGEROUS_OPTION_3 |
So finally I started to set it up so that I can verify that, at least for the archival build of the app, that the wrong option is not selected by using something like this:
#ifndef DEBUG_VERSION #if !defined(SAFE_OPTION_1) #error The release build of MyApp must have the SAFE_OPTION_1 option selected. #endif #endif |
This code will give me a build error if I forget to set the option back to the safe option, which is good.
Also, I wanted to make sure that one of the three options was selected, as commenting out all 3 options is not good, and may not necessarily generate any build errors on their own. So I then figured out that this would do the trick for me:
#if !defined(SAFE_OPTION_1) && !defined(RISKY_OPTION_2) && !defined(DANGEROUS_OPTION_3) #error Please select an option. #endif |
Now I get a build error when I accidentally have all 3 options commented out.
BTW, Happy 20th Birthday to the X-Files, which first aired on this date in 1993. I think it is about time for me to go back through and binge watch all 9 seasons of the show.