首页 > 编程语言 > 详细

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

时间:2015-12-15 06:22:01      阅读:723      评论:0      收藏:0      [点我收藏+]

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

 以新建一个项目为例: OCAndSwift 

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

 2. 项目结构如下:

      技术分享

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

    技术分享

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

技术分享

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

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

技术分享

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

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

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

技术分享

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

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

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

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

技术分享

解决办法:我们可以通过方法传参的方式,如下:定义的 SettingAge(age: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",略显麻烦。

 

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

原文:http://www.cnblogs.com/vegetable-bird/p/5046989.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!