OC-Swift混编(OC引Swift文件和方法)
2019-01-30 本文已影响18人
春田花花幼儿园
前话
这两天在搞🐒测试,需要在我们的OC项目中引用SwiftMonkeyPaws来显示出猴子的爪子。虽然OC中引Swift混编老生常谈,但是你自己搜索一圈之后发现,基本没文章能直接让你顺利引用并且开发。
大体分成两步:
- 创建Swift文件, 然后引用文件
- 引用Swift文件中的方法、属性
一.创建Swift文件, 然后引用文件
这一步比较简单,《IOS开发之OC-Switf 混编 -(OC 引 Swift 文件)》这篇文章很简明的说明了步骤。
需要提一下的是:
-
Swift中我们自己创建普通文件, 比如Person.swift,在使用的时候,不需要想OC中那样先引用(类似这样
import 'Person.swift'
)一下,直接使用即可。只有额外使用其他模块才需要引用,比如说import UIKit
. -
需要混编的类,要添加@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