Selon certaines discussions officielles, une classe en Objective-C ne devrait exposer que des méthodes et des propriétés publiques dans son en-tête :
@interface MyClass : NSObject
@property (nonatomic, strong) MyPublicObject *publicObject;
- (void)publicMethod;
@end
et les méthodes/propriétés privées devraient être conservées dans une extension de classe dans le fichier .m :
@interface MyClass()
@property (nonatomic, strong) MyPrivateObject *privateObject;
- (void) privateMethod;
@end
et je ne pense pas qu'il y ait un type protected
pour les éléments qui sont privés mais accessibles depuis les sous-classes. Je me demande, y a-t-il un moyen d'atteindre cela, en dehors de déclarer les propriétés/méthodes privées publiquement ?