找不到Swift编译器错误'iostream'

时间:2015-04-01 15:14:27

标签: c++ xcode swift iostream

我试图实施我在github上找到的项目。

https://github.com/hossamghareeb/Facebook-POP-Tutorial

当我实现.h和.m文件时,我发现了一个错误,即XCode无法找到我的' iostream'文件。

我在SWIFT工作,使用桥接标头来使用框架。当我尝试构建原始项目时,它可以工作,但我总是失败。

enter image description here

如何添加我的iostream文件?

提前致谢!

1 个答案:

答案 0 :(得分:4)

Swift桥接不支持Objective C ++文件。这意味着任何使用或暴露C ++ entites的标头(如std::vector; std::iostream)都无法添加到桥接标头中。

POP桥接标题包含:

#import "POP.h"

您应该只在自己的桥接标题中#import该文件,而不是尝试#import所有.h个文件。

如果您需要使用.mm文件中定义的某些API,这些API未使用Objective C或纯C标头公开,那么您必须制作你自己的头文件暴露它(可能是一个实现你已经暴露的后端)。

您可以在Swift使用的库中使用.mm文件的原因是因为所有快速使用都是这些文件的接口 - 即.h文件,以及只要这些文件在普通C或目标C中,您就可以使用.mm文件中实现的代码。 .mm文件由Objective C ++编译器(clang++

编译