Мой заголовок класса не может найти протокол, объявленный в другом заголовке, который определен «снаружи». структура выглядит следующим образом:Начало протокола ObjC
x1.h имеет импорт x2.h протокола
x1.h
импорта x3.h x2.h
Проблема заключается в том, что x3.h не в состоянии найти протокол.
Я хочу, чтобы избежать импорта x1.h в x3.h уменьшить дупликации
Ошибка «Синтаксический Issue Ожидаемым типа»
я получил запущенное состояние. Но после того, как я скопировал некоторый #import с x3.m на x2.h, появляется 100 ошибок с Unknown Type и Parse Issue. Даже в произвольных классах, например. (y42.m) являются ошибками. Странно, что класс y42.m импортирует x3.h и не знает x3.
Спасибо за чтение!
Дополнительная информация: Содержание x1.h
@protocol aDelegate <NSObject>
- (void)callback;
@end
Содержание x2.h
#import "x1.h"
typedef enum {
kOne,
kTwo,
kThree,
}States;
Содержание x3.h
#import "x2.h"
@interface x3 : NSObject <aDelegate>
{
States anyState;
}
@end
Государство неизвестно и aDelegate неизвестно , Причина тоже неизвестна.
Честно говоря, я действительно не понимаю. Вы говорите, что не нашли объявления протокола, а x1.h "имеет протокол", и вы считаете, что можете исправить это, включив x1.h в x2.h (чего вы хотите избежать по уважительным причинам). Но если протокол находится в x1.h, почему бы вам не найти его? –
Возможно, вы можете указать ошибки и код компилятора, чтобы мы могли точно видеть, что вы делаете. – nil