OC引用Swift代码

之前的工程代码都是用OC的,一直想转成swift的,但是感觉全转不太靠谱,所以决定一部分一部分慢慢转,所以需要用到OC和Swift代码混编。

1.创建swift代码。

@objc public class XX : XX

{

}

@objc ,public 最好都加上,然后子类也加上比如继承NSObject

然后就会问你是否创建header文件

选择是就行了,然后自动创建一个$(Project_Name)-Bridging-Header.h的文件,$(Project_Name)默认是工程名字,但是也可以修改。如果你选择了否或者不小心把这个文件删了怎么办了。

第一种就是:在SWIFT_OBJC_BRIDGING_HEADER将其选项删除,然后新建的时候就会又提示让你建立。

第二种就是:建立一个新的文件然后在SWIFT_OBJC_BRIDGING_HEADER,将路径输入进去。

这个文件的作用就是当swift需要使用OC代码的时候在SWIFT_OBJC_BRIDGING_HEADER文件将OC的头文件导入进去。

2.xcode自动帮你创建了$(Project_Name)-Swift.h文件

这个自动帮你创建好了。然后你在OC类里面#import这个文件以后就能直接使用Swift的代码了。

3.工程的一些配置

Packaging下面的Defines Module设置为YES

Swift Compiler - Code Generation下面的Objective-C Bridging Header,Objective-C Generated Interface Header Name比较重要的两个路径配置选项


一个莫名其妙的错误:

error:opening import file for module 'Swift':Not a directory

我只把Framework Search Path里面的libxml2去了就编译通过了。stackoverflow里面的完整答案是:

1:简化这个Framework Search Path只留下

$(inherited)

$(SRCROOT)

2:将libxml2去了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言: Swift语言出来后,可能新的项目直接使用Swift来开发,但可能在过程中会遇到一些情况,某些已用OC写好...
    疯狂的电脑阅读 2,372评论 0 9
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,305评论 4 61
  • 都说最好的爱情是你宠着我,我管着你,其实,最好的爱情是你有你的性格,我有我的爱好,我们相互平衡又相互独立,不卑不亢...
    大美美121阅读 170评论 0 0
  • 今天我把棕熊的故事读完了。
    又呆又萌的萌阅读 90评论 0 0