Why don't I need an ivar for this Core Data property?

@synthesize grew the ability to automatically synthesize the associated storage in a relatively recent compiler release (actually, not so recent though the simulator initially didn't support this pattern).

@synthesize without the =<somename> part would generate an ivar with the same name as the property name. When you do =<somename>, you tell it to make an ivar with a different name.