Swift与OC交互

源码请点击github地址下载。

主要内容:

  • 1.在OC项目里:
    • 1.1.OC代码调用Swift方法
    • 1.2.Swift代码调用OC代码。
  • 2.在Swift项目:
    • 2.1.Swift代码调用OC代码
    • 2.2.OC代码调用Swift方法。

不管在什么项目里,在创建另外一种开发语言文件时系统会提示创建桥接文件OCAndSwift-Bridging-Header.h(其中OCAndSwift代表项目名称。),一定得有这桥接文件swift代码才能调用OC。

  • 功能1.1与2.2

    他们都是OC代码调用Swift方法,不管是在什么项目中,使用方法都一样。

    只须在需要使用Swift方法的OC文件中倒入头文件 #import "OCAndSwift-swift.h"即可,在任何oc文件中导入的头文件都一样,其中OCAndSwift代表项目名称。
  • 功能1.2与2.1

    他们都是Swift代码调用OC代码。

    将OC代码所在头文件放在OCAndSwift-Bridging-Header.h文件里即可,可供任何位置的swift调用,如导入:#import "LXHelpClass.h"。

Swift代码调用OC方法如下:

  func tappedButton(sender:UIButton!) {
      self.myImageView.image = LXHelpClass.getEllipseImageWithImage(self.myImageView.image)
      print(sender.tag, terminator: "swift")
  }
 @interface LXHelpClass : NSObject
 + (UIImage *)getEllipseImageWithImage:(UIImage *)originImage;
 @end

OC控制器push到Swift控制器

#import "OCAndSwift-swift.h"
- (void)pushBtnClicked:(UIButton *)sender
{
    SwiftController *swiftVC = [[SwiftController alloc] init];
    [self.navigationController pushViewController:swiftVC animated:YES];
}
class SwiftController: UIViewController {
    override func viewDidLoad() {
    ...
    }
    ...
}


swift的控制器效果图如下,圆形头像是swift调用oc方法实现的功能:

screen.png


我的github

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

推荐阅读更多精彩内容

  • 为了方面查阅特转一篇文章 Swift的设计的初衷就是摆脱ObjC沉重的历史包袱,毕竟ObjC的历史太过悠久,相比于...
    Isy阅读 2,105评论 0 6
  • 前言: Swift语言出来后,可能新的项目直接使用Swift来开发,但可能在过程中会遇到一些情况,某些已用OC写好...
    疯狂的电脑阅读 2,330评论 0 9
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,196评论 4 61
  • 30岁的年龄时隔两年重新进入职场,原因不是玛丽苏电视剧里的剧情!更没有结婚生孩,更谈不上丈夫或男朋友出轨!而仅仅因...
    喜乐小琪阅读 793评论 0 1
  • 近来的日子,秋意渐浓。出门时,已经不得不多加一件外衣了。这秋凉的迹象来的无影无踪,就像故友的突然造访。也许是活的无...
    曾彧阅读 286评论 0 0