OC与Swift混编问题 Int 枚举类型无法转换

 今天,工作的时候,遇到OC调用swift中代码的问题,特意上网查了查,现在自己总结如下:

 以新建一个项目为例: OCAndSwift 

 1. 项目创建的时候,选择的时候Objective-C语言

 2. 创建了一个SwiftUser.swift文件,内容如下:(可忽略)

 3. 这时,我们在 ViewController.m中调用刚刚创建出来的 SwiftUser.swift文件,这是会看到如下提示:

 4. 问题出现了,那我们要怎么才能调用swift格式的文件呢???

    解决如下: 引入文件  OCAndSwift-swift.h,即可

5. 有没有小伙伴会有疑问说,这个是什么文件啊? 为什么是这个文件啊?

  哈哈,通过查阅资料了解到,这个就是所谓的桥接文件,关于文件名的命名,是这样的,

  targets->build settings ->packaging->Product Module Name

通过,这些配置,就可以查询到桥接文件名称

7. OCAndSwift-swift.h,默认后缀 -swift.h。文件中的内容为自动生成,无需程序员手动修改,通过 command + 鼠标左键,即可查询到里边的内容

  另外,今天遇到一个问题,当我在 SwiftUser.swift 文件中,创建 Int 类型变量时,OCAndSwift-swift.h 并不会帮我自动生成对应的属性字段。

       经过测试,发现 枚举 类型也无法转换

  解决办法:我们可以通过方法传参的方式,如下:定义的 SettingAge(age:Int) 方法,这样就可以传递Int类型

 

==============================我是分割线=============================================

Swift 中调用 OC 代码,这个比较简单,

1. 创建桥接文件

  OCAndSwift-Bridging-Header.h, 导入所需要的 #import "xxx.h" 文件

2. 配置文件

     targets->build settings ->packaging->Object-C Bridging Header      

3.之后就可以随心所欲的调用了,在每次新创建出来 oc.h 文件时,都需要手动向桥接文件中添加 #import "xxx.h",略显麻烦。

 

转载于:https://www.cnblogs.com/vegetable-bird/p/5046989.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值