gpt4 book ai didi

ios - 为 osx 和 ios 编译时导入 header

转载 作者:行者123 更新时间:2023-11-28 23:16:09 24 4
gpt4 key购买 nike

假设我有两个库“Foo”和“Bar”,编译为 OSX 框架和 IOS 静态库。

库“Foo”依赖于库“Bar”。我正在使用 XCode4 工作区。

在 Ascii 艺术中:-

  • IOS_App
  • ~ Foo.a
  • ~~Bar.a

  • OSX_App
  • ~ Foo.framework
  • ~ ~ Bar.framework

必须文件 Foo.m #imports Bar.h 看起来像这样:-

#if TARGET_OS_IPHONE
#import "Bar.h"
#else
#import <Bar/Bar.h>
#endif

或者,有没有办法,可以通过在构建 Bar 时复制标题,并适本地设置搜索路径,来制作

  #import <Bar/Bar.h>

在这两种情况下都有效?

(我想我的问题的根源是没有正确理解 #import </>#import "" 之间的区别)

最佳答案

我已经广泛地做了这类事情,最后我做的是修改应用程序/项目的前缀 header 以导入库/框架的特定头文件,或者如果前缀在 OS X 之间是通用的和 iOS(例如 Foo 库/框架)采用您问题中的第一个示例。

然后在 Foo.m 中,您不需要在顶部有任何#import 语句。

因此,例如,在 Foo.framework 的前缀 header 中有

#if TARGET_OS_IPHONE
#import "Bar.h"
#else
#import <Bar/Bar.h>
#endif

并且在您的 Mac OS X 应用程序的前缀 header 中有

#import <Foo/Foo.h>

和 iOS

#import "Foo.h"

那么你所有的源代码,都不需要担心你的公共(public)库/框架中任何类的头文件。

关于ios - 为 osx 和 ios 编译时导入 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6300324/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com