Nie można znaleźć deklaracji protokołu dla
Mam dwa obiekty, z których oba są kontrolerami widoku. Pierwszy (Ill call it viewController1) deklaruje protokół. Drugi (który, jak można się spodziewać, będę nazywał viewController2), jest zgodny z tym protokołem.
XCode daje mi błąd kompilacji: „Nie można znaleźć deklaracji protokołu dla viewController1”
Widziałem różne pytania na ten temat i jestem pewien, że ma to związek z błędem pętli, ale nie widzę tego w moim przypadku ...
Kod poniżej ..
viewController1.h
<code>@protocol viewController1Delegate; #import "viewController2.h" @interface viewController1 { } @end @protocol viewController1Delegate <NSObject> // Some methods @end </code>
viewController2.h
<code>#import "viewController1.h" @interface viewController2 <viewController1Delegate> { } @end </code>
Początkowo miałem linię importu w viewController1 powyżej linii deklaracji protokołu. To w ogóle uniemożliwiało budowę budynku. Po przeszukaniu SO zdałem sobie sprawę z problemu i zmieniłem dwie linie wokół. Otrzymuję teraz ostrzeżenie (w przeciwieństwie do błędu). Projekt rozwija się dobrze i działa doskonale. Ale nadal uważam, że musi być coś złego, aby otrzymać ostrzeżenie.
Teraz, o ile widzę, gdy kompilator dostaje się do viewController1.h, pierwszą rzeczą, którą widzi, jest deklaracja protokołu. Następnie importuje plik viewController.h i widzi, że implementuje ten protokół.
Gdyby kompilował je na odwrót, najpierw spojrzałby na viewController2.h, a pierwszą rzeczą, którą zrobiłby, byłoby import viewController1.h, którego pierwszym wierszem jest deklaracja protokołu.
Czy czegoś mi brakuje?