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",略显麻烦。

 

posted @ 2015-12-15 01:15  菜鸟的点滴记录  阅读(5397)  评论(0编辑  收藏  举报