Hiding instance variables in Objective-C classesEdit
The way that Apple's frameworks typically hide ivars today is to just put a pointer with a name like "reserved" in storage declaration, and then allocate their private storage in their -init methods.
John C. Randolph, former Apple engineer: http://lists.apple.com/archives/Cocoa-dev/2006/May/msg02133.html