zoukankan      html  css  js  c++  java
  • iOS OC中桥接swift第三方库

    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在项目中的路径 如图位置(路径根据桥接文件的实际位置来设置) 注意
  • 相关阅读:
    Tomcat修改端口号
    如何修改localhost为自己指定的域名
    Tomcat启动时启动窗口中文乱码问题的解决方案
    Java Web 项目jsp页面无法加载样式
    vue 父传子(通过属性传递)
    vue 父传子 讲解
    表白小爱心
    响应式开发
    组件的重复调用
    reduce
  • 原文地址:https://www.cnblogs.com/qqcc1388/p/11133270.html
Copyright © 2011-2022 走看看