Как соответствовать самодельному протоколу?

У меня есть класс со свойством делегата. Любой, кто хочет быть делегатом, должен соблюдать протокол. Я определил все так:

#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

Теперь сумасшедшая вещь: у меня есть другой класс, который хочет быть делегатом. Так что это соответствует этому протоколу, вот так:

#import <Foundation/Foundation.h>

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

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

@end

Я не могу заставить это работать. Там написано: «Нет определения протокола» TheDelegateProtocol ». найдено & Quot ;. Хорошо, этот протокол определен в MyClass, и я импортирую MyClass в реализацию. Есть идеи, что там не так?

Figured out something: В методе, где я пытаюсь назначить протокол, он говорит мне, что OtherClass не соответствует протоколу. Но это так! Это бессмысленно. Я также добавил метод протокола в шапке ....

Ответы на вопрос(7)

Ваш ответ на вопрос