如何解决为osx和ios编译时导入标头
|| 说我有两个库“ Foo \”和\“ Bar \”,它们被编译为OSX的框架和IOS的静态库。 库\'Foo \'取决于库\'Bar \'。我正在使用XCode4工作区。 在Ascii-art中: IOS_App 〜Foo.a ~~ Bar.a 和 OSX_App 〜框架 〜〜条形框架 必须将#imports Bar.h的文件Foo.m看起来像这样:#if TARGET_OS_IPHONE
#import \"Bar.h\"
#else
#import <Bar/Bar.h>
#endif
或者,有没有办法,例如,在构建Bar时复制标题,并适当设置Search Paths,以
#import <Bar/Bar.h>
在两种情况下都可以工作吗?
(我想我问题的根源是没有正确理解#import </>
和#import \"\"
之间的区别)
解决方法
我已经广泛地做了这种事情,最后我要做的是修改应用程序/项目的前缀头,以导入库/框架的特定头文件,或者如果前缀在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\"
然后,您所有的源代码都无需担心公用库/框架中任何类的标头。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。