2015-04-01 186 views
4

我试图实现一个我在github上找到的项目。Swift编译器错误'iostream'找不到

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

当我执行h和.m文件我已经得到了这是说的XCode找不到我“的iostream”文件的错误。

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

enter image description here

如何添加我的iostream文件?

提前致谢!

+1

这些文件是Objective C++,而不是Objective C。我不认为快速桥接可以与Objective C++头文件一起使用。 – Petesh 2015-04-01 15:42:17

+1

有没有可能导入这些客观的C++文件? – 2015-04-01 20:35:54

回答

2

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

的POP桥接头包含:

#import "POP.h" 

你真的应该只#import该文件在您自己的桥接报头,而不是试图#import所有.h文件。

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

您可以在Swift使用的库中使用.mm文件的原因是因为所有的swift使用都是这些文件的接口 - 即.h文件,只要这些文件使用纯C或Objective C ,那么你可以使用在.mm文件中实现的代码。目标C++编译器编译.mm文件(clang++

+0

谢谢,经过大量的诅咒和DuckDuckGoing你的答案是让我明白为什么我不能在我的情况下使用Objective-C++头(因为他们导入C++头)。 – 2016-08-16 06:42:42