title: Expose a private Objective-C method or property to subclasses
body: <p>According to some official talk, a class in Objective-C should only expose public methods and properties in its header:</p>
  
  <pre><code>@interface MyClass : NSObject
  
  @property (nonatomic, strong) MyPublicObject *publicObject;
  
  - (void)publicMethod;
  
  @end
  </code></pre>
  
  <p>and private methods/properties should be kept in class extension in .m file:</p>
  
  <pre><code>@interface MyClass()
  
  @property (nonatomic, strong) MyPrivateObject *privateObject;
  
  - (void) privateMethod;
  
  @end
  </code></pre>
  
  <p>and I don't think there is a <code>protected</code> type for things that are private but accessible from subclasses. I wonder, is there anyway to achieve this, apart from declaring private properties/methods publicly?</p>