亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

不能在Object-C中使用SWIFT類

不能在Object-C中使用SWIFT類

天涯盡頭無女友 2019-07-01 15:26:51
不能在Object-C中使用SWIFT類我試著整合Swift我的應用程序是用Objective-C我加了一個Swift班級,等級。我做了所有描述這里..但我的問題是Xcode尚未創建-Swift.h文件,只有橋接頭。所以我創造了它,但它實際上是空的。我可以在SWIFT中使用我所有的objc類,但反之亦然。我用@objc但沒什么用。我現在能做什么?編輯:Apple說:“當您將SWIFT代碼導入Object-C時,您依賴于Xcode-generated將這些文件公開給目標-C的頭文件。[.]這個標題的名稱是您的產品模塊名稱,后面加上“-Swift.h”。“現在,當我想導入該文件時,它會出現一個錯誤:    //MainMenu.m     #import "myProjectModule-Swift.h" //Error: 'myProjectModule-Swift.h' file not found     @implementation MainMenu這是我的FBManager文件:@objc class FBManager: NSObject {     var descr = "FBManager class"     init() {         super.init()     }     func desc(){         println(descr)     }     func getSharedGameState() -> GameState{         return GameState.sharedGameState() //OK! GameState is written in Objective-C and no error here     }}
查看完整描述

3 回答

?
侃侃無極

TA貢獻2051條經驗 獲得超10個贊

我花了大約4個小時試圖讓Swift在我的Xcode目標-C基礎項目。我的myproject-Swift.h文件已成功創建,但我的Xcode沒看到我的Swift-classes..所以,我決定創建一個新的Xcode基于objc的項目,最后,我找到了正確的答案!希望這篇文章能幫助到一些人:)

基于Xcode objc項目的逐步SWIFT集成:

  1. 創造新

    *.swift

    文件(在Xcode中)或使用Finder添加它
  2. 創建一個

    Objective-C bridging header

    當Xcode問你這件事時
  3. 實現您的SWIFT類:

    import Foundation// use @objc or @objcMembers annotation if necessaryclass Foo {
        //..}
  4. 打開生成設置并檢查這些參數:

    • 定義模塊: YES

      在搜索欄中復制和粘貼參數名稱

    • 產品模塊名稱: myproject

      確保產品模塊名稱不包含任何特殊字符

    • 安裝目標-C兼容性標頭: YES

      一旦你加入*.swift此屬性將顯示在“生成設置”中的項目中。

    • 目標-C生成的接口頭: myproject-Swift.h

      此標頭由xcode自動生成。

    • 目標-C橋接頭: $(SRCROOT)/myproject-Bridging-Header.h

  5. 在*.m文件中導入SWIFT接口頭

    #import "myproject-Swift.h"

    不要注意錯誤和警告。

  6. 清理和重建Xcode項目
  7. 利潤!


查看完整回答
反對 回復 2019-07-01
?
侃侃爾雅

TA貢獻1801條經驗 獲得超16個贊

不要自己創建頭文件。刪除你創建的那個。

確保您的SWIFT類被標記為@objc從(直接或間接)派生的類繼承NSObject.

如果項目中有任何編譯器錯誤,Xcode將不會生成文件-確保項目構建干凈。


查看完整回答
反對 回復 2019-07-01
?
慕的地6264312

TA貢獻1817條經驗 獲得超6個贊

不要自己創建頭文件。刪除你創建的那個。

確保您的SWIFT類被標記為@objc從(直接或間接)派生的類繼承NSObject.

如果項目中有任何編譯器錯誤,Xcode將不會生成文件-確保項目構建干凈。


查看完整回答
反對 回復 2019-07-01
  • 3 回答
  • 0 關注
  • 760 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號