J'ai créé un protocole que mes classes doivent mettre en œuvre, puis pris en compte certaines fonctionnalités communes dans une classe de base, donc je l'ai fait:Comment éviter d'avertissement « de mise en œuvre incomplète » dans la classe de base partielle
@protocol MyProtocol
- (void) foo;
- (void) bar;
@end
@interface Base <MyProtocol>
@end
@interface Derived_1 : Base
@end
@interface Derived_2 : Base
@end
@implementation Base
- (void) foo{
//something foo
}
@end
@implementation Derived_1
- (void) bar{
//something bar 1
}
@end
@implementation Derived_2
- (void) bar{
//something bar 2
}
@end
de cette façon, dans mon code, j'utiliser un identifiant générique <MyProtocol>.
Les œuvres de code (tant que base ne sert pas directement) mais le compilateur selfs à la fin de la mise en œuvre de la base avec un avertissement:
Incomplete implementation of class Base
Y at-il un moyen d'éviter cet avertissement ou, encore mieux, une manière plus correcte d'obtenir ce comportement de classe de base abstrait partiellement implémenté dans Objc?
ok, cela va au moins imposer l'implémentation dans les classes les plus dérivées. Il serait agréable d'avoir une compilation d'avertissement pour methos inappliquées, cependant, mais je suppose qu'il n'y a aucun moyen (?) Y at-il une bonne façon de faire cette classe de base partielle dans la mise en œuvre Obj-c? – garph0
Pas vraiment. Comme d'autres l'ont noté, Objective-C n'a pas de classes de base abstraites. Toutes les approches que j'ai jamais utilisées pour les imiter ne vous mèneront qu'à mi-chemin. – mipadi