J'utilise le code suivant pour ajouter une méthode displayValue
à NSObject:Comment ajouter une propriété à NSObject dans Objective-C?
@interface NSObject (MyNSObjectAdditions)
- (NSString*)displayValue;
@end
@implementation NSObject (MyNSObjectAdditions)
- (NSString*)displayValue {
return self.description;
}
@end
Cela fonctionne très bien, mais vraiment je préfère avoir valeurAffichée être une propriété en lecture seule au lieu d'une méthode.
Quelle serait la syntaxe appropriée pour convertir displayValue
en une propriété au lieu d'un sélecteur, si c'est même possible?
Je ne suis pas d'accord avec vous. J'ai ajouté beaucoup de catégories à NSObject. C'est une option parfaitement valide pour ajouter du comportement à peu près tout dans votre arbre de classe à la fois. Vous avez juste besoin de faire attention à ne pas noyer les méthodes existantes. – NSResponder
Également en désaccord avec l'autre point. Si vous souhaitez ajouter de nouvelles variables d'instance sans sous-classe, vous pouvez utiliser cette technique: [Objective-C: ajout d'attribut à une catégorie] (http://stackoverflow.com/q/4597637/1804403) – Skotch
Objets associés ('objc_ { get, set} AssociatedObject') peut être utilisé comme un remplacement entièrement fonctionnel de l'ajout dynamique de variables d'instance aux objets. –