Synthesized ivars (the ability to not manually declare ivars) are a feature of the new Objective-C runtime, which still isn’t being used on all systems. For 32-bit Macs (and, until recently, the iPhone simulator), you have to manually declare ivars. If you’re only targeting systems with the new runtime, there’s no reason to manually declare ivars.