2015-07-22 39 views
5

我試圖調用一個NSObject子類的方法,我在測試項目中的XCTestCase子類的方法中使用了「main」項目。主項目的NSObject子類導入「XXX-Swift.h」頭文件(我在混合SwiftObjective-C代碼)。所有工作正常,當我運行主項目,但是當我運行測試調用該子類的對象時,我得到一個錯誤,說導入中的Swift頭文件未找到。在測試項目中找不到「XXX-Swift.h」文件

我想我錯過了測試目標中的一些設置,但是我沒有找到......我應該檢查什麼?或者我應該怎麼做才能解決這個問題?

回答

10

轉到Xcode項目>構建設置,然後鍵入「頭名」,你會得到以下選項:

enter image description here

確保一定存在一個文件名:$(SWIFT_MODULE_NAME)-Swift.h

然後在Build Settings下鍵入「bridging header」,並確保「bridging-header.h」文件的路徑正確存在。

enter image description here

編輯:

1)確保你的 「項目名稱」 不包含空格 2)井 「XXX-Swift.h」 文件在以下路徑生成的,所以你需要添加路徑進行單元測試 - 去構建設置,鍵入「頭搜索路徑」,並添加以下行

"$(TARGET_TEMP_DIR)/../$(PROJECT_NAME).build/DerivedSources" 

欲瞭解更多,您可以參考以下鏈接:iOS - 'MyProject-Swift.h' file not found when running Unit Tests for Swift

+0

我已經在應用程序目標中設置了這些設置,並且在測試目標中將嵌入式內容包含Swift代碼設置爲YES,但在運行應用程序時它仍然在工作,但在運行測試時出錯... – AppsDev

+0

@AppsDev請參閱編輯答案 –

+0

我仍然得到錯誤...我怎麼能看到$(TARGET_TEMP_DIR)的值? – AppsDev

相關問題