iOS OC中桥接swift第三方库
swift中有一些比较好的框架,比如绘图框架charts,最近项目中刚好用到,通过Pod的方式直接导入,xcode会自动生成charts-swift.h的文件,然后在需要导入的地方import <charts-swift.h>即可
但是,通过pod导入的第三方项目如果需要做自定义定制,就没办法修改里面的内容,这样很难受,所以只有不通过pod的方式导入,直接将source文件拖入到工程中,这就涉及到了oc中桥接swift项目的一些问题
使用网上的一些方法和设置并没能解决我的问题,然后会各种报错,通过各种尝试,总算是将oc中桥接swift的问题解决了,一下是解决的步骤
到github 下载charts官方demo,找到source,将整个source文件拖入到工程中,注意Supporting Files中的文件也一起拖入,将info.plist文件名字修改为chart_info.plist,为了防止和工程中的info.plist文件名冲突

- 将source文件拖拽到新的项目中,新建一个swift文件,继承NSObject,名字随意,这个时候,xcode会提醒是否创建一个xxx-Bridging-Header.h的swift桥接文件,选择创建
在xxx-Bridging-Header.h添加Supporting Files中的.h文件 这里是Charts.h

command + b编译,这个时候xcode会自动生成一个 ChartsDemo-Swift.h ChartsDemo为你的xcode项目名, 在需要使用到charts的地方,#import <ChartsDemo-Swift.h>即可使用swift中方法和类了
修改charts中源码,再command+b xcode又会生产一份新的ChartsDemo-Swift文件 大工告成
使用

可能遇到的问题:
需要设置defines module为YES网的很多答案中都提到了这个一点,如果出现一些问题,可以尝试设置一下,具体位置(我暂时没有发现设置这个属性设置YES or NO的区别)

提示swift版本过低

- 添加swift文件时并不主动提示创建桥接文件(一般比老一点的项目好像都会不提示),这个时候就需要手动创建桥接文件了(xxx-Bridging-Header.h)
- 创建header file文件

- 命名header file文件名 如果我的工程target名叫TKDemo,所以这里就创建TKDemo-Bridging-Header文件名

- 设置TKDemo-Bridging-Header在项目中的路径 如图位置(路径根据桥接文件的实际位置来设置) 注意

- 创建header file文件
iOS OC中桥接swift第三方库的更多相关文章
- OC项目加入swift第三方库遇到的坑
https://www.jianshu.com/p/96d868dcd69c 2017.07.07 16:23* 字数 295 阅读 5218评论 2喜欢 4 首先,在OC项目的Podfile文件中添 ...
- IOS开发中有用的第三方库
#Objective-C中最受瞩目库 [链接](https://github.com/languages/Objective-C/most_watched) * [three20](https:/ ...
- Swift中的Masonry第三方库——SnapKit
在OC开发时我常用一个名叫Masonry的第三方Autolayout库,在转Swift后发现虽然Swift可以混编OC,但总感觉有些麻烦,在Github上发现了这个叫做SnapKit的第三方库,发现使 ...
- 在oc代码中使用swift第三方框架
swift现在使用越来越多了,一些主流的框架或者效果比较好的demo都陆陆续续使用swift写了.所以,要学会如何在oc的项目中调用swift. 这里主要借助一个桥梁文件,这个桥梁文件一般在你导入sw ...
- Objective-C 和 Swift 第三方库使用
https://www.jianshu.com/p/6be32a047ca7 原文地址: Objective-C 和 Swift 第三方库使用 注1:文章写于2016年9月,(swift 3.0.Xc ...
- swift调用oc语言文件,第三方库文件或者自己创建的oc文件——简书作者
Swift是怎样调用OC的第三方库的呢?请看下面详情: 情况一: 1.首先打开Xcode,iOS->Application->Single View Application, 选Next. ...
- Swift中的Masonry第三方库——SnapKit
在OC开发时我常用一个名叫Masonry的第三方Autolayout库,在转Swift后发现虽然Swift可以混编OC,但总感觉有些麻烦,在Github上发现了这个叫做SnapKit的第三方库 ...
- iOS项目中常用的第三方开源库
1.项目使用的第三方开源库 项目使用了CocoaPods(类似java中的maven)管理常用的第三方库,一些特殊的单独引用,下面介绍下比较好用的几个. (1)AFNetworking 目前比较推荐的 ...
- iOS 中 常用的第三方库
现在对于我们 iOS 开发来说,基本上说不可能不使用第三方轮子啦,毕竟没那么多时间,而且自己造的轮子往往想着成为上图中的最后一个,结果却成了上图中第二个或第一个啦,当然大公司另当别论.下面我从之前用过 ...
随机推荐
- JavaScript中实现li向上轮播
在网上找了很久,没有找到合适的模板,其实我这个也是公司用的,希望以后也能复用,节省时间 function scrollAuto(scrollBox, list){//两个参数分别填列表的ul的clas ...
- python子进程模块subprocess详解
subprocess--子进程管理器一.subprocess 模块简介subprocess最早是在2.4版本中引入的.subprocess模块用来生成子进程,并可以通过管道连接它们的输入/输出/错误, ...
- lua基础(2)
错误处理: local function add(a,b) assert(type(a) == "number", "a 不是一个数字") assert(typ ...
- Codeforces Round #575 (Div. 3) B. Odd Sum Segments (构造,数学)
B. Odd Sum Segments time limit per test3 seconds memory limit per test256 megabytes inputstandard in ...
- 转载:利用php数组函数进行函数式编程
因为一个BUG, 我在一个摇摇欲坠,几乎碰一下就会散架的项目中某一个角落中发现下面这样一段代码 这段程序与那个BUG有密切的关系. 我来回反复的捉摸这段代码, 发现这段代码实现了两个功能 第一个是在一 ...
- putty ssh常用命令小结
打开putty 输入VPS的IP地址输入root回车输入密码回车 vps 更改文件夹所属组 cd /home/vpsuser/domains/afish.cnblogs.com/ chown -R v ...
- 【NOIP2014模拟11.3】噪音
题目 FJ有M个牛棚,编号1至M,刚开始所有牛棚都是空的.FJ有N头牛,编号1至N,这N头牛按照编号从小到大依次排队走进牛棚,每一天只有一头奶牛走进牛棚.第i头奶牛选择走进第p[i]个牛棚.由于奶牛是 ...
- C#与JAVA的互通
C#与JAVA的互通 https://blog.csdn.net/sinat_35165183/article/details/68936910
- net core 下 接受文件 测试
/* IFormFileCollection Files 再Request对象下的From对象下的Files对象 public interface IFormFileCollection : IRea ...
- html audio标签 语法
html audio标签 语法 audio标签的作用是什么? 作用:<audio> 标签定义声音,比如音乐和视频或其他音频资源,使用audio标签可以不用Flash插件就可以听音乐看视频, ...