Swift 编译器错误 'iostream' 未找到
Swift Compiler Error 'iostream' not found
我试图实现一个我在 github 上找到的项目。
https://github.com/hossamghareeb/Facebook-POP-Tutorial
当我执行 .h 和 .m 文件时出现错误,提示 XCode 找不到我的 'iostream' 文件。
我在 SWIFT 工作,使用 bridging-headers 来使用框架。当我尝试构建原始项目时它可以工作,但我的总是失败。
如何添加我的 iostream 文件?
提前致谢!
Swift 桥接不支持 Objective C++ 文件。这意味着任何使用或公开 C++ 实体的 headers(如 std::vector
;std::iostream
)不能添加到桥接 header.
POP 桥接 header 包含:
#import "POP.h"
您真的应该只 #import
您自己的桥接文件 header,而不是尝试 #import
所有 .h
文件。
如果您需要使用在 .mm
文件中定义的某些 API 未使用 Objective C 或纯 C header 公开的部分,那么您必须制作您自己的 header 文件来公开它(可能还有一个 back-end 来实现您所公开的内容)。
您可以在 Swift 使用的库中使用 .mm
文件的原因是因为所有 swift 使用的是这些文件的接口 - 即 .h
文件,只要这些文件是纯 C 或 Objective C,那么您就可以使用 .mm
文件中实现的代码。 .mm
文件由 Objective C++ 编译器编译 (clang++
)
我试图实现一个我在 github 上找到的项目。
https://github.com/hossamghareeb/Facebook-POP-Tutorial
当我执行 .h 和 .m 文件时出现错误,提示 XCode 找不到我的 'iostream' 文件。
我在 SWIFT 工作,使用 bridging-headers 来使用框架。当我尝试构建原始项目时它可以工作,但我的总是失败。
如何添加我的 iostream 文件?
提前致谢!
Swift 桥接不支持 Objective C++ 文件。这意味着任何使用或公开 C++ 实体的 headers(如 std::vector
;std::iostream
)不能添加到桥接 header.
POP 桥接 header 包含:
#import "POP.h"
您真的应该只 #import
您自己的桥接文件 header,而不是尝试 #import
所有 .h
文件。
如果您需要使用在 .mm
文件中定义的某些 API 未使用 Objective C 或纯 C header 公开的部分,那么您必须制作您自己的 header 文件来公开它(可能还有一个 back-end 来实现您所公开的内容)。
您可以在 Swift 使用的库中使用 .mm
文件的原因是因为所有 swift 使用的是这些文件的接口 - 即 .h
文件,只要这些文件是纯 C 或 Objective C,那么您就可以使用 .mm
文件中实现的代码。 .mm
文件由 Objective C++ 编译器编译 (clang++
)