Como se conformar a um protocolo feito por você mesmo?

Eu tenho uma classe com uma propriedade de delegado. Qualquer pessoa que queira ser um delegado deve obedecer a um protocolo. Eu defini tudo assim:

#import <UIKit/UIKit.h>

@protocol TheDelegateProtocol;

@interface MyClass : UIView {
    id<TheDelegateProtocol> theDelegate;
}

@property (nonatomic, assign) id<TheDelegateProtocol> theDelegate;


@end


@protocol TheDelegateProtocol<NSObject>
@required

- (void)fooBarWithFoo:(CGFloat)foo;
@end

Agora o mais louco é: eu tenho outra classe que quer ser a delegada. Então, ele está em conformidade com esse protocolo, assim:

#import <Foundation/Foundation.h>

@class MyClass; // forward declaration. importet in implementation.
@protocol TheDelegateProtocol; // need forward declaration here, right?

@interface OtherClass : NSObject <TheDelegateProtocol> {
    // ivars
}

@end

Eu não posso fazer isso funcionar. Diz: "Nenhuma definição de protocolo 'TheDelegateProtocol' found". Bem, esse protocolo é definido no MyClass e estou importando o MyClass na implementação. Alguma ideia do que está errado aí?

Descobri algo: Em um método onde tento atribuir o protocolo, está me dizendo que o OtherClass não está em conformidade com o protocolo. Mas isso acontece! Isso não faz sentido. Eu também adicionei o método de protocolo no cabeçalho ....

questionAnswers(7)

yourAnswerToTheQuestion