> Am 15.05.2020 um 08:28 schrieb Johannes Brakensiek <[email protected]>: > > I'm new to Objective C, so this is just a question: > > In the NY Times Objective C style guide I am reading: > > Values MUST NOT be compared directly to YES, because YES is defined as 1, and > a BOOL in Objective-C is a CHAR type that is 8 bits long (so a value of > 11111110 will return NO if compared to YES). > https://github.com/nytimes/objective-c-style-guide > > What do you think of this?
Johannes, I am replying to the discussion mailing list, as your mail most likely should have gone there, replying to a GitHub mail directly makes little sense. I mostly agree with the style guide you are citing. And I really didn’t know that the NY Times was using Objective C, looks like they are even hiring :-) It is a shame that there are so few ObjC programmer offerings in Germany. But back to the topic. This is what is common in all C based programming languages and I think Richard is following this principle very strictly in GNUstep base. The idea is to be open in what you accept, but strict in what you return. As far as I am aware he even makes sure to convert values he gets from calls to other methods to YES or NO before returning them. GNUstep qui is not that clean in this respect. The one line I just moved in the commit you are replying to is an example: [v acceptsFirstMouse: theEvent] == YES Here we don’t follow this principle and this is dangerous as a view we call this method on may not be as clean as the GNUstep code itself. Patches are welcome :-) And why did I write that I „mostly“ agree? I would not follow this advice when the value is completely in our control. Cheers, Fred
