2014-06-12 89 views
1

我用下面的代碼顯示錯誤,找不到文件。如何將Swift類導入ViewController?

#import <SwiftDemo/ViewController-swift.h> 

即使ViewController.swift文件存在於項目,幫我理清問題。

+0

您將文件導入到ObjC項目或Swift項目? – PREMKUMAR

+1

嘗試'#import「ViewController-swift.h」' – ZeMoon

+0

沒有工作仍然顯示相同的錯誤。 它的一個快速項目。 –

回答

3

我假設你正在嘗試使用Objective-C的Swift代碼。你的產品名是「ViewController」嗎?如果不是,那麼你沒有導入正確的標題。您應該使用Xcode生成的標題ProductModuleName-Swift.h(用您的特定產品名稱替換ProductModuleName)。

簡而言之,ProductModuleName只是您的應用程序的名稱。例如:我的應用程序是Application所以這個頭文件是Application-Swift.h

此外,這個頭文件將連接你的所有Swift到Obj-C,它不是特定於文件的。

請參考this關於Swift/Obj-C互操作性的非常有用的文檔。

1

您應該導入由編譯器生成的名爲"<YourProductName>-Swift.h"的合成文件。

我認爲這個文件是即時生成的,但你仍然可以通過例如檢查它擴展的內容。創建包含只是這一個虛擬的Objective-C文件:

extern int ____BEGIN_SWIFT_IMPORTS____; // dummy marker declaration 
#import "<YourProductName>-Swift.h" 

(你當然應該替代<YourProductName>

,然後在其上運行的預處理器(產品→執行操作→預處理)。虛標記聲明後的所有輸出將來自生成的文件。瞭解如何將用@objc標記的Swift代碼轉換爲Objective-C聲明很有用。

+0

我如何創建這樣的文件?我無法在我的項目中找到任何具有該名稱的文件。是否爲每個快速文件 –

+1

Anil特定,該文件是由Xcode和編譯器自動生成和維護的。它將連接Swift到Obj-C。在我上面的回答中,我有鏈接到完整的Apple文檔,這對我來說非常有幫助。 –

+0

@IsaacDrachman我沒有得到他們所指的ProductModuleName。那是我的swift文件名嗎? –

相關問題