Swift桥接

在swift项目中,有时候会使用一些使用OC语言的第三方库,那这时候怎么办呢?其实Swift和OC是可以混编的,使用swift的桥接功能就可以轻松实现,在swift中调用OC中的方法。

首先,新建一个测试工程,在这个项目中有一个按钮,点击按钮会弹出一个HUD,这个HUD使用的是OC语言写的第三方库SVProgressHUD,可在Github上下载该第三方库。

废话不多说,进入正题。

1. 新建项目

工程名字为Test-Compatibility,在view中添加一个按钮。

let btn: UIButton = UIButton()
btn.frame = CGRect(x: 80, y: 100, width: 100, height: 30)
btn.setTitle("click", forState: UIControlState.Normal)
btn.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Normal)
btn.backgroundColor = UIColor.grayColor()
btn.addTarget(self, action: "btnClick", forControlEvents: UIControlEvents.TouchUpInside)

view.addSubview(btn)

2.建立桥接文件

  1. 右键项目 -> New File,或者使用按快捷键command+N, 选择Header File

  2. 桥接文件命名格式为Test-Compatibility-Brigding-Header.h,就是工程名+-Brigding-Header.h

  3. 配置桥接文件
    点击target -> Builde Setting,在搜索框中输入bri,在结果列表中找到Object Bridging Header,在后面添加Test-Compatibility/Test-Compatibility-Brigding-Header.h,也就是工程名+/桥接文件名

  4. 编译看是否有错

3. 集成SVProgressHUD框架

  1. GitHub下载SVProgressHUD框架,并集成到项目中

  2. 在桥接文件中导入头文件

  3. 添加使用SVProgressHUD的相关代码

func btnClick() {
    print("btn click")

    SVProgressHUD.showInfoWithStatus("HUD")
    SVProgressHUD.setDefaultMaskType(SVProgressHUDMaskType.Black)
}
  1. 运行项目


  2. 点击按钮,查看效果


此时,swift桥接成功。

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

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,193评论 4 61
  • 我有一个漂亮的盒子 掉在泥沼里 你们都不知道里面装了什么 美的或丑的,还是空的 其实我也不确定 但盒子是我打开的 ...
    布鲁喵阅读 2,425评论 0 0
  • 我爱你,很严肃,很神圣的话题。 我爱你这句话已经听了很多很多次了。从小姑娘开始到现在。我却从来没勇气说过,觉得说出...
    海深深阅读 2,578评论 2 3
  • 唐.杜牧 秋夕 银烛秋光冷画屏, 轻罗小扇扑流萤。 天阶夜色凉如水, 卧看牵牛织女星。
    大气浩然阅读 3,056评论 2 3
  • 四月份以来一直都想写一篇关于实习的总结性日记,但是除了要上班,周末又总是广州汕尾茂名来回奔波,就一直搁浅了。现...
    杨霖萍阅读 4,330评论 0 0