2015-04-16 46 views
0

我們在WatchKit擴展中有一個混合的代碼庫。在幾個Objective-C文件中,我們需要從擴展中訪問Swift代碼庫。我們一直在使用以下導入:Xcode 6.3無法找到watchkit擴展名swift文件

#import "MyProject_WatchKit_Extension-Swift.h" 

這對整個開發過程都很好。

我正在轉向Xcode 6.3。在將我們的代碼庫更新到Swift 1.2後,我得到File not found作爲我的擴展swift文件。

我已經試過:

  • 全面清理W/CMD + 選擇 + 轉變 + ķ
  • 刪除派生數據
  • 刪除並重新安裝的Xcode
  • 更改擴展模塊名稱並使用該輸入
  • 已回覆到預更新提交和手動更新,而不是自動化:`轉換>最新斯威夫特>

任何人有什麼想法。

回答

0

我能夠通過編輯擴展的構建設置中的Objective-C Generated Interface Header Name字段來找出答案。我以前從未編輯過這個字段,我不確定這個值是如何去除的。我會在其他情況下,這裏離開這個有同樣的問題:

enter image description here

1

看來Xcode中已經改變了它在目標構建設置中定義的文件路徑默認行爲。以前很高興在項目目錄中遞歸查看一個文件,所以你可以定義文件名,並且你很好。現在您需要預先設置文件夾名稱。

轉到您的目標構建設置並搜索'Objective-C Bridging Header',您可能會看到條目'MyProject_WatchKit_Extension-Swift.h'。您需要預先添加文件相對於根項目文件夾的路徑。

如果你的文件夾被構造成這樣:

PROJECT_ROOT_FOLDER 
- CLASSES_FOLDER 
-- MyProject_WatchKit_Extension-Swift.h 
- .xcodeproj 
- TESTS_FOLDER 

那麼你就需要到值更改爲

CLASSES_FOLDER/MyProject_WatchKit_Extension-Swift.h

+0

這不是在Objective-C橋接報頭,這是另一個方向: )。你試過這個嗎? swift頭文件是由xcode生成的,定義一個用於導入的文件夾並不是真的可行,因爲我們不知道或者無法控制Xcode的放置位置(據我所知)。我能夠通過明確聲明接口頭來解決它。 – Logan

+0

這解決了我的問題。如果您的主iPhone應用程序中有一個obj c頭文件,並且您正在手錶套件擴展中訪問它,請按照以下步驟操作。 1.在您的手錶套件擴展項目中添加對象橋接頭。 2.在主項目中添加需要的頭文件到你的頭文件頭 –