如果链接框架包含私有标头,Xcode项目会抱怨丢失文件

时间:2010-04-27 14:35:51

标签: objective-c cocoa gcc header private

我的问题是:

  • 我的框架包含公共和私有标头 - 公共标头在框架中导入私有标头
  • 我的应用程序链接此框架导入公共标题

现在当我编译它时,Xcode抱怨丢失文件(通过框架公共头部间接导入的私有头文件)。我在stackoverflow的某个地方读到我应该这样做:

“在公共头文件中使用@class包含其他接口并在实现文件(.m)中使用#import。”

我发现这个解决方案非常不满意 - 你也必须将它用于循环依赖。有没有更好的办法让我的标题保密?

1 个答案:

答案 0 :(得分:1)

要获得循环引用,请使用标题中的@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