2015-04-01 201 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