OC调用swift方法

现在OC与swift混编的项目越来越多,这就涉及到两种语言互相调用方法的问题。

在swift调用OC方法上还是比较简单的,只要在“XXX-Header.h”桥接文件里导入OC类的头文件即可,这个“XXX”一般表示的是项目的名称,比如说你的项目是SwiftDemo.xcodeproj,则这个桥接文件就是SwiftDemo-Bridging-Header。一般这个文件在你创建不同语言的文件时会自动提示创建,所以也不需要改什么东西,很方便。这样,在swift里就可以直接调用OC里的方法了(据说是要提前编译一下,所以Command+B就好)。

额,扯远了,这里主要说的是OC调用swift方法,这个比较坑爹,花了一点时间,网上查找,各种的都有,都试过一遍,奈何一个有用的没有! T T......
最后,其实很简单(mmp),在 Swift 文件中,若要规定固定的方法或属性暴露给 Objective-C 使用,可以在方法或属性前加上 @objc来声明。如果类是继承NSObject,那么要在非 private 的方法或属性前加上@objc(据说swift3.0之前都是系统自动加上的!!!),现在要手动加!。也可以在swift类的前面加上@objcMembers这个关键字,这样可以让该类的所有属性和方法加上@objc。当然!这样肯定还是很懵,对不对?!!!

u=1344944560,3942035704&fm=27&gp=0.jpg

@objcMembers class SwiftClass: NSObject {}

然后在要调用swift方法的OC类里导入文件,就以上面的项目名为例:#import "SwiftDemo-swift.h",这个文件可以在Targets->Build Settings->Swift Compiler - General ->Objective-C Generated Interface Header Name里看到。

最后,还是要提前编译一下,就可以在OC类里调用swift方法了!!!

希望对您有帮助,谢谢您的到访!!!

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

推荐阅读更多精彩内容

  • 高三毕业那年的暑假,每天搬个板凳坐在阳台上手写了本小说《青春随风》,后来到南昌读大学,在学校边上找了个打字店,当黑...
    罗帆文集阅读 447评论 0 1
  • 一位国家博物馆的解说员在接待北京某重点小学每周一次的参观学习时,提出一个问题。 问“北宋之后是什么朝代”,他期待着...
    潩水潆洄阅读 549评论 0 0
  • 中午午休时,正在看老爸当家的我让一个陌生人打扰了,陌生人想做水晶字而第一反应是让他找老板然后递上名片,而陌生人必没...
    A昊欣阅读 104评论 0 1
  • 我拿什么给你呢?我爱和爱我的人们??当我走进这座诗意合院的刹那,我认定:就是她了! 当我们踏进这个中式合院的时候,...
    元初阅读 573评论 0 1