J'ai une classe Film, dont chacune stocke un ID unique. En C#, Java etc., je peux définir un static int currentID et à chaque fois que je définis l'ID, je peux augmenter le currentID et le changement se produit au niveau de la classe et non de l'objet. Cela peut-il être fait en Objective C ? J'ai eu beaucoup de mal à trouver une réponse à cette question.
Réponses
Trop de publicités?(A proprement parler, il ne s'agit pas d'une réponse à la question, mais d'après mon expérience, elle peut s'avérer utile lors de la recherche de variables de classe).
Une méthode de classe peut souvent jouer plusieurs des rôles que jouerait une variable de classe dans d'autres langages (par exemple, modifier la configuration pendant les tests) :
@interface MyCls: NSObject
+ (NSString*)theNameThing;
- (void)doTheThing;
@end
@implementation
+ (NSString*)theNameThing { return @"Something general"; }
- (void)doTheThing {
[SomeResource changeSomething:[self.class theNameThing]];
}
@end
@interface MySpecialCase: MyCls
@end
@implementation
+ (NSString*)theNameThing { return @"Something specific"; }
@end
Maintenant, un objet de la classe MyCls
appelle Resource:changeSomething:
avec la chaîne @"Something general"
sur un appel à doTheThing:
mais un objet dérivé de MySpecialCase
avec la chaîne @"Something specific"
.
- Réponses précédentes
- Plus de réponses