Не удается найти объявление протокола для

У меня есть два объекта, оба из которых являются контроллерами представления. Первый (я назову его 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, первая строка которого является объявлением протокола.

Я что-то упустил?

26
задан Ben Thompson 15 April 2012 в 09:25
поделиться