Проект XCode жалуется на отсутствующие файлы, если связанная структура содержит частные заголовки - PullRequest
1 голос
/ 27 апреля 2010

Моя проблема заключается в следующем:

  • Моя структура содержит публичные и частные заголовки - публичные заголовки импортируют частные заголовки в структуру
  • Мое приложение, которое ссылается на эту платформу, импортирует публичные заголовки

Теперь, когда я его компилирую, XCode жалуется на отсутствующие файлы (приватные заголовки, которые косвенно импортируются через публичные заголовки frameworks). Я где-то читал на stackoverflow , что я должен сделать это:

"В общедоступном заголовочном файле используйте @class для включения других интерфейсов и используйте #import в файле реализации (.m)."

Я нахожу это решение довольно неудовлетворительным - вы должны использовать его и для циклических зависимостей. Есть ли лучший способ сохранить конфиденциальность моих заголовков?

1 Ответ

1 голос
/ 28 апреля 2010

Чтобы получить циклические ссылки, используйте директиву @class в заголовке и #import в исходном файле.

В OtherClass.h:

@class MyClass;
@interface OtherClass
{
    MyClass *myInstance;
}
@end

В OtherClass.m:

#import "OtherClass.h"
#import "MyClass.h"
@implement OtherClass
@end

В MyClass.h:

@class OtherClass;
@interface MyClass
{
    OtherClass *otherInstance;
}
@end

В MyClass.m:

#import "MyClass.h"
#import "OtherClass.h"
@implement MyClass
@end
...