7 ms·
Nice idea, but the sample code they show in the screenshot uses "FALSE" instead of NO (the Obj-C standard boolean literal). I'm not sure how they did that (#de
by adamjernst 13y ago
Nice idea, but the sample code they show in the screenshot uses "FALSE" instead of NO (the Obj-C standard boolean literal).
I'm not sure how they did that (#define?) but stay far, far away. Imagine if you opened up a Ruby codebase and found out I had aliased NO to be the same as the language builtin false... yeesh.
Also, setting boolean instance variables to NO in init is silly since Obj-C objects are calloc'd, so all ivars are guaranteed to start with default values (nil/0/NO).
- dazzla 13y agoI've always used YES NO TRUE FALSE interchangeably without any #defines.
- mikeash 13y agoCFBase.h defines TRUE as 1 and FALSE as 0. There's no reason to think that they defined it themselves (and indeed, I believe this would error unless they explicitly checked for a previous definition).
- adamjernst 13y agoCorrect.
- ajanuary 13y agoTRUE and FALSE are defined in obj-c (http://www.opensource.apple.com/source/objc4/objc4-371.1/runtime/standard.h http://www.opensource.apple.com/source/objc4/objc4-371.1/run...), mainly for compatibility with C code. It's recommended YES and NO are used (http://www.opensource.apple.com/source/objc4/objc4-371.1/runtime/objc.h http://www.opensource.apple.com/source/objc4/objc4-371.1/run...)
- objclxt 13y ago> I'm not sure how they did that (#define?) but stay far, far away ...NO and YES in Objective-C are themselves #defines. As others have pointed out, TRUE/FALSE are also already defined in the language, although using them in Objective-C is not good style. http://www.opensource.apple.com/source/objc4/objc4-371.1/runtime/objc.h http://www.opensource.apple.com/source/objc4/objc4-371.1/run...