假设我有两个库“Foo”和“Bar”,编译为OSX的框架和IOS的静态库。
图书馆'Foo'取决于图书馆'Bar'。我正在使用XCode4工作区。
在Ascii-art中: -
和
必须提交 Foo.m ,指示#imports Bar.h 如下: -
#if TARGET_OS_IPHONE
#import "Bar.h"
#else
#import <Bar/Bar.h>
#endif
或者,是否有办法,可能是在构建栏时复制标题,并正确设置搜索路径,以制作
#import <Bar/Bar.h>
在这两种情况下工作?
(我认为问题的根源无法正确理解#import </>
和#import ""
之间的差异
答案 0 :(得分:2)
我已经广泛地完成了这类工作,我最终做的是修改应用程序/项目的前缀头,以导入库/框架的特定头文件,或者前缀是否在OS X和iOS(例如Foo库/框架)采用了您问题中的第一个示例。
然后在Foo.m你不需要在顶部有任何#import语句。
因此,例如,在Foo.framework的前缀头中有
#if TARGET_OS_IPHONE
#import "Bar.h"
#else
#import <Bar/Bar.h>
#endif
并且在Mac OS X应用程序的前缀标题中
#import <Foo/Foo.h>
和iOS
#import "Foo.h"
然后您所有的源代码,都不需要担心公共库/框架中任何类的标头。