簡體   English   中英

將Objective-C框架轉換為Swift-頭文件仍顯示Objective-C函數

[英]Converting an Objective-C framework to Swift - Header files still displaying Objective-C functions

我將整個Objective-C框架都轉換為Swift 構建它之后,當我檢查框架的Header文件時,它仍顯示舊的Objective-c函數。
我從框架項目中刪除了所有Objective-C文件。 我曾嘗試清潔和建設該項目。 但是沒有成功。

您已從Xcode項目中刪除了Objective-C文件,但是還從文件系統以及您可能正在使用的任何源代碼管理中刪除了它們嗎?

同樣,即使您已將Xcode項目中的“構建設置”從顯式包含在Xcode的項目導航器中明確刪除后,也可以在它們中搜索庫/頭文件。

只要確保搜索路徑不會尋找舊的Obj-C東西即可。 注意諸如MyXcodeProject/**類的遞歸搜索。 **將遞歸搜索所有子文件夾及其子文件夾以查找要包含的內容。

如果可以的話,最好直接在搜索路徑中指定文件夾。 如果您知道不需要搜索路徑,則只需清除它們即可。

在此處輸入圖片說明

...盡管,您可能希望保留默認排除項:

在此處輸入圖片說明

請記住,您不能在Objective-C中繼承Swift類。 因此,您遷移的類不能包含任何Objective-C子類。

將類遷移到Swift后,必須在構建之前從目標中刪除相應的.m文件,以避免重復的符號錯誤。

為了使Swift類在Objective-C中可用,使其成為Objective-C類的后代。

按住Command鍵並單擊Swift類名稱,以查看其生成的標頭。

按住Option鍵單擊一個符號可以查看有關它的隱式信息,例如其類型,屬性和文檔注釋。

來自: https : //developer.apple.com/documentation/swift/migrating_your_objective-c_code_to_swift

另外,刪除您的DerivedData,執行干凈的構建並重新啟動xCode。

即使刪除了Obj C文件,如何在基於Swift的框架中也能看到“ Header”文件。 肯定存在構建問題。 如果構建正確,則構建后您將不會引用/使用正確的框架(在應用程序中)。 這是我在許多開發人員中發現的最常見的錯誤。

也許可以幫上忙,在您的框架的“目標構建設置”上嘗試一下:

  • 禁用模塊(啟用模塊(C和Objective-C))

禁用模塊

  • 確保設置了Swift版本(Swift語言版本)

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM