前话
这两天在搞测试,需要在我们的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