Ajouter des protocoles à mon delegate
colas_
Membre
Bonjour !
J'ai sous-classé NSTextView et je voudrais ajouter un protocole à son delegate.
J'ai essayé de faire ceci :
@interface MyCBDTextView ()
@property (nonatomic, readwrite, weak) id< MyCBDTextViewDelegate> delegate ;
@end
@implementation MyCBDTextView
...
J'ai tout d'abord été étonné parce que le compilateur n'a pas tiqué sur cette redéfinition de delegate avec un type différent. Je me suis dit : wow, ils ont été malins chez Apple, on peut redéfinir un type en ajoutant des protocoles !!!
Le problème c'est que depuis que j'ai fait ça, les méthodes de NSTextViewDelegate ne sont plus appelées !!
Je sais comment remédier à ce problème (par exemple ne pas redéfinir et caster le delegate dans les méthodes), mais ma question c'est : Que se passe-t-il à votre avis ??
Merci
Colas
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Le coup des méthodes de NSTextViewDelegate qui ne sont pas appellées, c'est normal, tu es dans le forum iOS, y'a pas de NSTextViewDelegate ça n'existe pas dans le SDK iOS.
La bonne solution de toute façon c'est d'utiliser une @property différente (myDelegate, ou autre) car on ne peut pas changer le type d'une propriété existante héritée de la classe mère.
À force de vouloir que l'on poste dans le bon forum, tu t'y trompes Ali ! Je suis dans le forum sur les API communes. Ma question porte plus sur l'Objective-C que sur telle ou telle classe.
Mais bon ça reste bizarre qu'il ne t'appelle pas les méthodes du coup, j'ai du mal à comprendre pourquoi il ne te fait ni warning ni appel aux méthodes, mais toujours est-il que tu vas être de toute façon obligé de créer une autre propriété car je ne pense pas que tu puisses changer le type de la propriété "delegate" existante dans la classe mère
je ferais :
pas testé ...