我有一個NSOperation和自定義init
方法的子類,它可以接受幾個參數。這個類是用OBJ C編寫的,我想從Swift類調用這個init方法進行單元測試。有沒有一種方法可以直接從swift調用init方法?編譯器無法識別init方法。如何從Swift調用Obj C自定義NSOperations子類的Init方法
0
A
回答
0
你必須創建一個橋接頭並在那裏導入ObjC類。那麼這個類將在所有的SWIFT類可用
添加新文件的Xcode(文件>新建>文件),然後選擇「來源」,並單擊「頭文件」。
將文件命名爲「YourProjectName-Bridging-Header.h」。 ...
創建文件。
導航到您的項目構建設置並找到「Swift編譯器 - 代碼生成」部分。在搜索框中輸入「Swift Compiler」可以更快地找到縮小結果的範圍。注意:如果您沒有「Swift編譯器 - 代碼生成」部分,這意味着您可能沒有將任何Swift類添加到您的項目中。添加一個Swift文件,然後再試一次。
在「Objective-C Bridging Header」旁邊,您需要添加頭文件的名稱/路徑。如果您的文件駐留在項目的根文件夾中,只需將頭文件的名稱放在那裏。示例:「ProjectName/ProjectName-Bridging-Header.h」或簡單地「ProjectName-Bridging-Header.h」。
打開您新創建的橋接頭並使用#import語句導入您的Objective-C類。此文件中列出的任何類都可以從您的swift類訪問。
以上信息在這裏找到:http://www.learnswiftonline.com/getting-started/adding-swift-bridging-header/
相關問題
- 1. 子類awakeFromNib調用超類的自定義init/setup方法?
- 2. NSManagedObject子類的意外的自定義init方法行爲
- 3. UIVIewController自定義init方法
- 4. 只要init調用[super init],在Objective C自定義init方法中調用[self init] OK?
- 5. 自定義init方法
- 6. EmberJS:從子類的init方法調用父類的功能
- 7. 從Obj-C/Obj-C++使用C++對象 - 調用外部方法
- 8. 在Swift中調用自定義的Objective C方法?
- 9. 如何在swift的類定義中調用deinit方法
- 10. 如何從Swift中調用Objective-C的NSArray類方法?
- 11. 從另一個自定義方法調用自定義方法
- 12. ViewController之前被調用的自定義init方法viewDidLoad
- 13. Go,init自定義類型
- 14. 的OBJ-C:自定義子類的實現委託
- 15. C++如何遍歷定義爲超類的向量,但調用子類方法?
- 16. 如何調用自定義get方法
- 17. Obj-C類的方法結果從塊
- 18. 無法從我的自定義佈局類中調用方法
- 19. 如何從我的自定義類的現有類中調用方法(arduino)?
- 20. 自定義NSOperations自動釋放池
- 21. 子類init方法只調用基礎初始化方法
- 22. 如何從超類方法中調用python子類的方法?
- 23. 如何從超類方法調用子類的方法?
- 24. 如何從類方法返回自定義Objective-C對象?
- 25. 從目標c類調用swift類的自定義委託引發錯誤
- 26. Swift無法識別Obj-C類的方法
- 27. Singleton類中的Init方法(Objective-C)
- 28. swift - 我可以從我的自定義init方法調用結構默認成員初始化嗎?
- 29. 如何從我的自定義c#類中調用response.redirect
- 30. 從WebAPI調用自定義方法
我有一個橋接頭文件已經放置。我可以訪問除Init方法之外的類。這是否有任何理由。如果我在swift文件中創建相同的子類,我可以使用以下語法訪問init方法nsoperationsubclass(initmethod參數) –
您可以顯示初始化程序的代碼片段嗎? –
讓Xcode爲你創建一個橋接標題更容易tbh。只需在Swift項目中創建一個新的Objective C文件,反之亦然 – Alexander