The ridiculous amount of effort that we have to go through to define private properties (just sheer amount of text around them) makes me miss the pre-property days... I still define iVars the old fashioned way. The whole language would do well to have some syntax sugar added akin to Java's private, public, protected for properties so we could just go
Well we have syntax sugar for iVars... I think it's so messy putting some properties in the header and some in the implementation file with a private category - come on we can't have better syntax than that?
Having public things be in the header and private things in the .m seems exactly right! The header should only expose the public interface, not the implementation details, no?
(On the other hand, defining properties in an anon category, instead of just plain old instance variables in the .m, seems pointless to me -- why have a layer of indirection for the class to access itself?)
I'm a heavy user of properties in other languages like C#, but in Objective C, to define the anonymous category with all the property ceremony and verbiage, feels...excessive...if all you need is some private state, and you don't care about generated accessors or KVO.
Why are ivars bad, exactly? They're a lot more succinct if you don't actually need what properties give you.
@private NSString dog;
@public NSString cat;
... Oh Wait! We do, it's just that nobody uses it anymore. http://stackoverflow.com/questions/4869935/objective-c-priva...
Well we have syntax sugar for iVars... I think it's so messy putting some properties in the header and some in the implementation file with a private category - come on we can't have better syntax than that?