OC Swift混编 记录

40 篇文章 0 订阅
17 篇文章 0 订阅

OC 项目混编Swift

  1. 在OC项目中初始创建swift文件时,会提醒创建桥接文件

    点击 Create Bridging Header 就会生成一个桥接文件

    如果误点导致没有创建桥接文件,可手动创建一个 “工程名-Bridging-Header.h" 的头文件,然后在工程中配置文件(参考下一步)

  2. 工程配置
    target | Build Settings
    在这里插入图片描述
    在这里插入图片描述

  3. swift 引用 OC
    在桥接文件中导入Swift需要访问的OC类,.Swift文件中即访问OC的类了

  4. OC 引用 Swift
    需要导入隐式头文件:xxx-Swift.h,xxx-Swift.h在项目中是看不到的,但是确实是可以import的
    编辑import时,Xcode 并不会有导入该头文件的快捷提示
    我们可以创建一个头文件,然后在该头文件中引入这个隐式头文件:

问题

1. OC 中无法调用Swift的方法:

Swift4新特性介绍3(Substring、swap、@objc)

隐式 @objc 自动推断

class SwiftClass { }

@objc extension SwiftClass {
   func foo() { } //包含隐式的 @objc
   func bar() { } //包含隐式的 @objc
}

2. 无法引用class.

class 需要继承 NSObject

3. 无法使用swift定义的enum

在这个枚举前加上 @objc( 枚举 )即可

@objc(DMSCropProportionOrientation)
enum DMSCropProportionOrientation: Int {
    case unknown    = -1 
    case landscape  = 0 
    case portrait   = 1 
    case auto       = 2
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值