OC-Swift混编(OC引Swift文件和方法)

2019-01-30  本文已影响18人  春田花花幼儿园

前话

这两天在搞🐒测试,需要在我们的OC项目中引用SwiftMonkeyPaws来显示出猴子的爪子。虽然OC中引Swift混编老生常谈,但是你自己搜索一圈之后发现,基本没文章能直接让你顺利引用并且开发。

大体分成两步:

  1. 创建Swift文件, 然后引用文件
  2. 引用Swift文件中的方法、属性

一.创建Swift文件, 然后引用文件

这一步比较简单,《IOS开发之OC-Switf 混编 -(OC 引 Swift 文件)》这篇文章很简明的说明了步骤。

需要提一下的是:

  1. Swift中我们自己创建普通文件, 比如Person.swift,在使用的时候,不需要想OC中那样先引用(类似这样import 'Person.swift')一下,直接使用即可。只有额外使用其他模块才需要引用,比如说import UIKit.

  2. 需要混编的类,要添加@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


上一篇下一篇

猜你喜欢

热点阅读