系统iOS8.0以上,工具Xcode 8.0 ;
由于Charts是Swift代码,导入OC项目需要相应的配置。
手动添加:
一、配置
1.手动导入下载好的Charts库
导入库文件在Command + B,一个警告,“使用Swift语言遗留版本”
使用遗留Swift语言版本由图下找到,并进行配置
设置Swift遗留版本由第四步,Unspecified末定义,点击修改为NO(即:不使用Swift之前版本,现在为Swift3.0),再编译一下,错误更多了
为NO点击警告查看,大部分错误是CGFloat类型,这里应该可以想到是不是跟UIKit这个库有关呢?随便点开一个CGFloat的错误信息查看
CGFloat确实头文件只导了一个Foundation库,UIKit库这个没导,那就尝试往里导入UIKit库
锁住出现了警告,提示该文件锁住了,不允许被编辑!毕竟是Charts库里的文件,也不能随便乱改,那需要怎么做呢?让它在编译到文件前,就识别(导入UIKit库)CGFloat。所以此时会想起桥接文件,假如这个猜想成立。如果就开始创建桥接文件。在工程下Command + N(创建新文件)弹出header图,选择Header File
header创建桥接文件、命名(自己想叫什么就叫什么符合苹果大佬的命名规则就行,也可以用大佬的默认格式)并存放位置(默认就行,反正在工程里就行)
桥接文件创建关联桥接文件
关联桥接文件第五步:个人书写习惯 “${SRCROOT}/...” “...”代表你创建桥接文件的路径,当前桥接文件在工程目录下,所以“...”就是桥接文件名。
桥接文件关联完成后,就是验证猜想的时候了,编译中...
导入需要的库红色警报没有了,不过还有一个黄色警告,点开信息一开
黄色警告是关于Charts库里有个.md文件果介意它的存在,就把那个.md文件删除了
删除README.md文件删除后
文件删除后,黄色警告也没了。所以咱们的猜想是正确的!(到这里了都给自己一个剪刀手)
二、使用
1.导入文件(Product Module Name-Swift.h)。在需要的地方导入该文件,如图中的1操作
导入图默认情况下Product Module Name是工程名,想改成自己用的,可以在Build Setting修改Product Module Name的值:如下图
修改Product Module Name处此就不做事例了。
导入后,编译会出现黄色警告,如“导入图”中2显示108个(此处我是加入了其它操作才显示76,下面会说明)。在“导入图”中3鼠标点击左键,显示的警告都是在Product Module Name-Swift.h文件里,点击进入该文件中查看,如下图
警告问题由于该文件是由系统生成的,大致看了下,问题都出现在注释里面,\param 文字颜色是黑色,个人觉得跟“\”反斜杠有关。所以就用替换 Command + Options + F,把“\param” 替换成“param”,编译,警告全没了。不过先别高兴太早,把项目重启后,这个警告问题还是出现(毕竟是系统生成的)。所以现在对该问题还是没解的,如有清楚如何解决这问题的,望不吝告知,在此先谢了(微笑)。好扯的有点远了。
导入文件后,如下图箭头,可以在当前文件使用Charts库里的类了。
使用这样就可以使用Charts的类了。
不过这边需要注意的。Product Module Name-Swift.h该文件应导在.m文件中,如想提供Charts库里的类当做当前类的一个公共属性里,请用@class 类名,告知编译器在当前.h有某类存在,否则编译不能通过。主要是防止循环依赖关系,具体此处不详细说明。
Cocoapods添加
感觉比手动添加简单多了,只需要要导入Charts.Swift。 就可以使用Charts里面的类。
一:配置及使用
其实也不需要配置,只要导入@import Charts.Swift就可以使用了,如果没写上Swift也可以使用。但会出现警告
在模拟器7Plus如下图情况:
导入Charts 有警告导入是Charts 在Build Settings设置Defines Module为YES 没警告
模拟器7Plus 导入Charts.Swift没警告
在真机上iOS9
导入Charts 有警告导入Charts 修改Defines Module 为YES 无警告
但把Defines Module 恢复为NO时,导入还是Charts,编译 运行后,警告也没有了。
执行Clean 快捷键Command + Shift + K后。导入Charts.Swift没警告
导入Charts.Swift
网友评论