According to some official talk, a class in Objective-C should only expose public methods and properties in its header:
@interface MyClass : NSObject @prope
That's because there's not even a real distinction between private and public. While the compiler may warn you about an interface missing a certain method or instance variable, your program will still work.