Voici ce que j'ai fait pour que les méthodes protégées soient visibles par mes sous-classes, sans qu'elles aient à les implémenter elles-mêmes. Ainsi, je n'ai pas reçu d'avertissements du compilateur dans ma sous-classe concernant une implémentation incomplète.
SuperClassProtectedMethods.h (fichier de protocole) :
@protocol SuperClassProtectedMethods <NSObject>
- (void) protectMethod:(NSObject *)foo;
@end
@interface SuperClass (ProtectedMethods) < SuperClassProtectedMethods >
@end
SuperClass.m : (le compilateur vous forcera maintenant à ajouter des méthodes protégées)
#import "SuperClassProtectedMethods.h"
@implementation SuperClass
- (void) protectedMethod:(NSObject *)foo {}
@end
SubClass.m :
#import "SuperClassProtectedMethods.h"
// Subclass can now call the protected methods, but no external classes importing .h files will be able to see the protected methods.