comment étendre un protocole pour un délégué en objective-C, puis une sous-classe d'un objet à exiger une conformité délégué

Je veux à la sous-classe UITextView, et envoyer un nouveau message sur le délégué. Donc, je veux étendre le délégué du protocole. Quelle est la manière correcte de le faire?

J'ai commencé avec ça:

interface:

#import <Foundation/Foundation.h>

@class MySubClass;

@protocol MySubClassDelegate <UITextViewDelegate>
- (void) MySubClassMessage: (MySubClass *) subclass;
@end


@interface MySubClass : UITextView {
}

@end

mise en œuvre:

#import "MySubClass.h"


@implementation MySubClass

- (void) SomeMethod; { 
    if ([self.delegate respondsToSelector: @selector (MySubClassMessage:)]) { 
        [self.delegate MySubClassMessage: self];
    }
}

@end

cependant, avec qui je reçois l'avertissement: '-MySubClassMessage:' not found in protocol(s).

J'avais une façon de travailler de concert où j'ai créé mon propre ivar pour stocker le délégué, puis également stockées, le délégué à l'aide de [super setDelegate] mais qui semblait mal. c'est peut-être pas.

Je sais que je peux juste passer l'id de la autour de et de, mais Mon objectif est de faire en sorte que le compilateur vérifie que tous les délégués fourni à MySubClass est conforme à MySubClassDelegate protocole.

Pour de plus amples clairfy:

@interface MySubClassTester : NSObject {

}

@implementation MySubClassTester

- (void) one { 
    MySubClass *subclass = [[MySubClass alloc] init];
    subclass.delegate = self;
}

@end

va produire de l'avertissement: class 'MySubClassTester' does not implement the 'UITextViewDelegate' protocol

Je le veux pour produire de l'avertissement de ne pas mettre en œuvre 'MySubClassDelegate" protocole la place.

  • mis à jour avec plus d'un exemple de code pour préciser davantage, brad fait plus clair pour moi que la '-MySubClassMessage:' not found in protocol n'était pas réellement en voyant que le compilateur a été de vérifier que le délégué était de bonne conformation de type. et que @option que j'ai eu pour MySubClassMessage fait de la question presque sans objet. 😉
InformationsquelleAutor fess . | 2010-05-18