6.Swift工程中, swift & oc 混编调用

1.Swift工程中调用OC文件

  1. 在swift工程里,创建oc文件,自动弹出创建桥接文件,点确认,让xcode自动创建桥接文件
  2. 在桥接文件中,导入需要使用到的oc文件
    在这里插入图片描述
  3. 调用
    在这里插入图片描述

2.Swift工程中,oc文件再去调用swift文件

  1. 首先把Build Setting -> Packaging -> Define Modules 设为YES
    在这里插入图片描述
  2. 查看确认项目名称
    在Build Setting -> product MOD
    在这里插入图片描述
  3. 在oc的文件中,导入xxx-Swift.h (这里的xxx就是项目名称),这个是系统隐藏的文件,看不到的。
    在这里插入图片描述

3.@objc 和@objcMembers

  1. Swift中的类要给OC调用,要在类前面加@objcMembers
  2. 类扩展给OC调用,可以在类扩展前加@objc
  3. 单独的方法或属性要给OC调用,加上@objc
  4. 类扩展不想给OC调用,可以在类扩展前加@nonobjc
@objcMembers
class MyClass: NSObject {
    func show() {
        testOC().test()
        print("show")
    }
}

@objc
extension MyClass {
    func test1() {
        print("test1")
    }
}

@nonobjc
extension MyClass {
    func test2() {
        print("test1")
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值