No need to expose properties to the whole world. In your .m implementation file, you can add a small category to declare 'private' properties. For instance.
Nothing in Objective-C is really confidential in strict terms, so I would say it was a good practice - it hides almost all of the save / release material without requiring ARC compatibility and has a side effect of not requiring you to specify at all your instance variables in the header (although there are other ways to achieve this).
As a historical note, I think this was the first way to move instance variables from the header - something is only allowed by the "new" runtime on iOS and 64-bit Intel 10.6+ - so this may be the secondary reason why your team dealt with by this. Unless they explicitly told you to make your classes transparent, they can actually fully match your feeling (and the well-accepted object-oriented principle) that implementations should be opaque.
Tommy source share