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

  1. 到github 下载charts官方demo,找到source,将整个source文件拖入到工程中,注意Supporting Files中的文件也一起拖入,将info.plist文件名字修改为chart_info.plist,为了防止和工程中的info.plist文件名冲突

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

  4. command + b编译,这个时候xcode会自动生成一个 ChartsDemo-Swift.h ChartsDemo为你的xcode项目名, 在需要使用到charts的地方,#import <ChartsDemo-Swift.h>即可使用swift中方法和类了

  5. 修改charts中源码,再command+b xcode又会生产一份新的ChartsDemo-Swift文件 大工告成

  6. 使用

可能遇到的问题:

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

  2. 提示swift版本过低

  3. 添加swift文件时并不主动提示创建桥接文件(一般比老一点的项目好像都会不提示),这个时候就需要手动创建桥接文件了(xxx-Bridging-Header.h)
    • 创建header file文件
    • 命名header file文件名 如果我的工程target名叫TKDemo,所以这里就创建TKDemo-Bridging-Header文件名
    • 设置TKDemo-Bridging-Header在项目中的路径 如图位置(路径根据桥接文件的实际位置来设置) 注意

iOS OC中桥接swift第三方库的更多相关文章

  1. OC项目加入swift第三方库遇到的坑

    https://www.jianshu.com/p/96d868dcd69c 2017.07.07 16:23* 字数 295 阅读 5218评论 2喜欢 4 首先,在OC项目的Podfile文件中添 ...

  2. IOS开发中有用的第三方库

    #Objective-C中最受瞩目库 [链接](https://github.com/languages​​/Objective-C/most_watched) * [three20](https:/ ...

  3. Swift中的Masonry第三方库——SnapKit

    在OC开发时我常用一个名叫Masonry的第三方Autolayout库,在转Swift后发现虽然Swift可以混编OC,但总感觉有些麻烦,在Github上发现了这个叫做SnapKit的第三方库,发现使 ...

  4. 在oc代码中使用swift第三方框架

    swift现在使用越来越多了,一些主流的框架或者效果比较好的demo都陆陆续续使用swift写了.所以,要学会如何在oc的项目中调用swift. 这里主要借助一个桥梁文件,这个桥梁文件一般在你导入sw ...

  5. Objective-C 和 Swift 第三方库使用

    https://www.jianshu.com/p/6be32a047ca7 原文地址: Objective-C 和 Swift 第三方库使用 注1:文章写于2016年9月,(swift 3.0.Xc ...

  6. swift调用oc语言文件,第三方库文件或者自己创建的oc文件——简书作者

    Swift是怎样调用OC的第三方库的呢?请看下面详情: 情况一: 1.首先打开Xcode,iOS->Application->Single View Application, 选Next. ...

  7. Swift中的Masonry第三方库——SnapKit

        在OC开发时我常用一个名叫Masonry的第三方Autolayout库,在转Swift后发现虽然Swift可以混编OC,但总感觉有些麻烦,在Github上发现了这个叫做SnapKit的第三方库 ...

  8. iOS项目中常用的第三方开源库

    1.项目使用的第三方开源库 项目使用了CocoaPods(类似java中的maven)管理常用的第三方库,一些特殊的单独引用,下面介绍下比较好用的几个. (1)AFNetworking 目前比较推荐的 ...

  9. iOS 中 常用的第三方库

    现在对于我们 iOS 开发来说,基本上说不可能不使用第三方轮子啦,毕竟没那么多时间,而且自己造的轮子往往想着成为上图中的最后一个,结果却成了上图中第二个或第一个啦,当然大公司另当别论.下面我从之前用过 ...

随机推荐

  1. Vue组件通信方式(8种)

    1.一图认清组件关系名词 父子关系:A与B.A与C.B与D.C与E 兄弟关系:B与C 隔代关系:A与D.A与E 非直系亲属:D与E 总结为三大类: 父子组件之间通信 兄弟组件之间通信 跨级通信 2.8 ...

  2. redis、rabitmq对比

    redis.rabitmq对比 原文地址 简要介绍 RabbitMQ RabbitMQ是实现AMQP(高级消息队列协议)的消息中间件的一种,最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性 ...

  3. 关于 i++ 和 ++ i

    先看一下代码,猜想一下输出值 @Testpublic void test() { int i =1; int a,b=0; i++; a=(i++); System.out.println(a); S ...

  4. Delphi 变量

  5. ifconfig - 配置网络接口

    总览 ifconfig [接口] ifconfig 接口 [aftype] options | address ... 描述 ifconfig 用于配置常驻内核的网络接口.它用于在引导成功时设定网络接 ...

  6. python爬取百度图片

    import requests import re from urllib import parse import os from threading import Thread def downlo ...

  7. u-boot log_init函数分析

    log_init, int log_init(void){    struct log_driver *drv = ll_entry_start(struct log_driver, log_driv ...

  8. MySQL优化建议与使用规范

    适用场景:并发量大.数据量大的互联网业务;可以先阅读必须掌握的MySQL优化指南 一.基础规范 (1)必须使用InnoDB存储引擎 解读:支持事务.行级锁.并发性能更好.CPU及内存缓存页优化使得资源 ...

  9. SSM三大框架详细整合流程

    1.基本概念 1.1.Spring Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One  ...

  10. 【leetcode&CN&竞赛】1198.Find Smallest Common Element in All Rows

    题目如下: 给你一个矩阵 mat,其中每一行的元素都已经按 递增 顺序排好了.请你帮忙找出在所有这些行中 最小的公共元素. 如果矩阵中没有这样的公共元素,就请返回 -1. 示例: 输入:mat = [ ...