前話
這兩天在搞??測試,需要在我們的OC項目中引用SwiftMonkeyPaws來顯示出猴子的爪子。雖然OC中引Swift混編老生常談,但是你自己搜索一圈之后發現,基本沒文章能直接讓你順利引用并且開發。
大體分成兩步:
- 創建Swift文件, 然后引用文件
- 引用Swift文件中的方法、屬性
一.創建Swift文件, 然后引用文件
這一步比較簡單,《IOS開發之OC-Switf 混編 -(OC 引 Swift 文件)》這篇文章很簡明的說明了步驟。 但是有些地方這篇文章中并沒有提到,需要注意一下,看下邊。
注意點:
Swift中我們自己創建普通文件, 比如Person.swift,在使用的時候,不需要想OC中那樣先引用(類似這樣
import 'Person.swift'
)一下,直接使用即可。只有額外使用其他模塊才需要引用,比如說import UIKit
.-
為了調用到你自己創建的Swift類,你需要在創建的類中
加上@objc
聲明或者繼承NSObject(NSObject的子類也行)
。
比如:class MonkeyUIPaws: NSObject { }
@objc class MonkeyUIPaws { }
二.引用Swift文件中的方法、屬性
在前邊的文章中,你僅僅能創建出文件,但是使用Swift的文件中的方法或者屬性會不出現自動提示。 解決辦法是你需要在對應的方法和屬性前邊也加上@objc
,編譯一下,就可以出現自動提示啦,比如:
class MonkeyUIPaws: NSObject
{
@objc var paws: MonkeyPaws?
@objc func showMonkeyPawsINUITest ( window: UIWindow ) -> () {
paws = MonkeyPaws(view: window)
}
@objc class func test() -> () {
print("test")
}
}
交流
希望能和大家交流技術
Blog:http://www.lilongcnc.cc