У меня есть два объекта, оба из которых являются контроллерами представления. Первый (я назову его viewController1) объявляет протокол. Второй (неудивительно, что я назову его viewController2) соответствует этому протоколу.
XCode выдает ошибку сборки: «Не удается найти объявление протокола для viewController1»
Я видел различные вопросы по этому вопросу, и я уверен, что это связано с ошибкой цикла, но я просто не могу см. это в моем случае...
Код ниже..
viewController1.h
@protocol viewController1Delegate;
#import "viewController2.h"
@interface viewController1 {
}
@end
@protocol viewController1Delegate <NSObject>
// Some methods
@end
viewController2.h
#import "viewController1.h"
@interface viewController2 <viewController1Delegate> {
}
@end
Первоначально у меня была строка импорта в viewController1 выше, чем в объявлении протокола. Это вообще мешало реализации проекта. После поиска на SO я понял проблему и поменял местами две строки. Теперь я получаю предупреждение (в отличие от ошибки). Проект отлично строится и на самом деле работает отлично. Но я все еще чувствую, что должно быть что-то не так, чтобы получить предупреждение.
Теперь, насколько я понимаю, когда компилятор получает viewController1.h, первое, что он видит, это объявление протокола. Затем он импортирует файл viewController.h и видит, что он реализует этот протокол.
Если бы он компилировал их наоборот, он бы сначала посмотрел на viewController2.h, и первое, что он сделал бы, это импортировал viewController1.h, первая строка которого является объявлением протокола.
Я что-то упустил?