У меня есть 2 контроллера вида, средство выбора объектов и редактор объектов.Оба этих объекта имеют свои собственные протоколы, позволяющие докладчикам получать данные и отклонять их.
Редактору иногда требуется представить средство выбора, а средство выбора иногда должно разрешать редактирование объектов.
Проблема в том, что существует циклическая зависимость от протокола, и поскольку объекты должны соответствовать протоколам, переадресация объявлений не работает (вы по-прежнему получаете предупреждения компилятора).
Я не просто объявляю ивару, который должен соответствовать ему, весь класс выбора / редактора должен соответствовать, поэтому заголовкам нужна полная информация о протоколах.
Я получаюCannot find protocol definition for 'EditorDelegate'
ошибка.
Вот пример:
Picker.h
#import "Editor.h"
@protocol PickerDelegate;
@interface Picker : UIViewController <EditorDelegate> {
id <PickerDelegate> delegate;
}
@protocol PickerDelegate <NSObject>
- (void)picker:(Picker *) wasDismissedWithObject:(id)object;
@end
Editor.h
#import "Picker.h"
@protocol EditorDelegate;
@interface Editor : UIViewController <PickerDelegate> {
id <EditorDelegate> delegate;
}
@protocol EditorDelegate <NSObject>
- (void)editor:(Editor *) dismissedAfterEditingObject:(id)object;
@end
Как это можно преодолеть?