WWDC之Integrating Swift With Objective-C

前言

Session将重点讲解如何让SwiftObjective-C两种不同的语言共同工作.

内容

让Swift文件使用Objective-C文件的API

Swift完全支持和使用Objective-C的框架Framework;
在已有的Objective-C文件中创建Swift文件,Xcode会提示需要创建一个工程名-Bridging -Header.h格式的桥接头文件,此文件用来声明需要暴露给Swift文件使用Objective-C API的头文件,由开发者自己决定需要给Swift文件引用的Objective-C文件.若Xcode未出现此提示,也可以自动创建桥接头文件,然后在项目targetbuilding setting中搜索header后找到Bridging header选项,手动添加自己的桥接文件相对路径.

手动设置桥接文件路径.png

Objective-C文件使用Swift文件的API

Swift文件里声明的协议Protocol,如要在Objective-C文件中调用必须在协议声明前添加@objc关键字;
Xcode会自动生成头文件用于将Swift的API暴露给Objective-C文件使用,该头文件命名格式固定为"工程名-Swift.h",只需要先导入此头文件就能使用所有Swift文件的API.

各自API相互转换方式.png
在Objective-C框架中使用Swift

给框架Target添加Swift文件时不会提示创建桥接文件,但能自动获取到当前框架的其他文件所有API进行调用,这是系统自动进行的编译优化和处理.
Objective-C中的initWithXX方法在转化为Swift方式,将自动移除With,生成init(XX格式 (只针对init方法的转换)
h文件需要引用Swift文件对象时,使用@class进行导入;
m文件引用Swift文件时使用固定格式FrameworkName/AppName-Swift.h导入自动生成的头文件;

总结

Objective-C代码与Swift代码相互交互的过程,Xcode已经足够强大能够自动完成具体实现代码的桥接功能,这也让开发者能更好地使用这两种语言,而不会因为两种语言的不同语法和特性而纠结过多的时间.

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

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,196评论 4 61
  • 不知从何时起,吃妈妈亲手做的饭的日子少了,对大多数如同我一样求学在外的学子来说,这逐渐变为一种奢侈。妈妈做的饭味道...
    不争先生阅读 5,484评论 0 1
  • 行走西域丝绸之路,古文明历史发展的一串明珠熠熠光芒;滇黔之行,苍山的翠绿,滚锅的热浪,果树的飞瀑,自然风光...
    龙凤来阅读 4,538评论 5 9
  • 现象学首先不是一些原理和体系,而是观察人生和世界的独特方式,也就是在体验对象时一同体验到这体验过程的在场意识方式,...
    大平安阅读 3,916评论 0 49