There's a lot out there on why to go through a @synthesized setter (instead of accessing the ivar directly), for retain/copy memory management, or for KVO.
But I can't think of a good argument for why you'd care if you used foo = self.bar
, or foo = bar
.
The only thing I can think of is for data abstraction...if bar is a declared property, then the underlying implementation could change and no one else would care. (Of course, in this case, you'd probably not be using a @synthesized getter)
So...any compelling reasons to use @synthesized getters? Is there some threading issues that make it important?
For that matter, what does the @synthesized code even do, other than just return the ivar?