oc库 swift 引用pod_oc 调用swift pod库 - CSDN
  • OCSwift混编Pod引入第三方的问题 问题描述:Swift应用OC 的开源框架,需要创建一个桥接头文件,问题就出在这个看似简单,却隐藏着一个巨大的问题:一切都按部就班的在桥接头文件中引入了OC 头文件,但是...

    OC和Swift混编Pod引入第三方库的问题

    问题描述:Swift应用OC 的开源框架,需要创建一个桥接头文件,问题就出在这个看似简单,却隐藏着一个巨大的问题:一切都按部就班的在桥接头文件中引入了OC 头文件,但是xcode总是报错找不到该文件。接下来详细描述问题和原因。

    1.为了在Swift项目中引入OC 开源框架,我使用了pod工具引入。然后下图:

    2.之后创建桥接文件:

    3.然后就是在配置文件中设置桥接文件路径:

    4.到这里就看似完成了,一切都很简单。但是,当编译时问题就来了,如下图:

    原因是找不到该文件。可是明明使用了pod工具引入了啊。(注:百度清一色的都是以上步骤,该问题并未在百度查询到问题原因和解决方案。所谓博客恐怕都是出自一人)

    5.在作了大量的测试和摸索后,终于得意解决。问题的根本原因就是我之前用pod引入了Swift开源框架,为了方便,在引入OC开源框架时我同样是使用了pod工具。我们回看第一步

    Swift框架:

    pod 'SnapKit''~> 0.30.0.beta1'

    pod 'Alamofire''~> 3.4.0'

    pod 'SwiftyJSON''~> 2.3.2'


    OC框架:

    pod 'SVProgressHUD'

    pod 'MJRefresh'

    同样还有一句话:

     use_frameworks!


    没错,简单的说,在OC开发时并不用使用该语句,但是Swift开发时使用pod工具就需要加上这句话。这就导致了OC 和 Swift公用同一个项目工程中的pod时造成了以上显示的错误,即使其他步骤都没有错,但是错误原因就是找不到文件。

    至于为什么会这样,我联想到了之前看到过的一篇文章好像是有这么一句话(记不太清楚了)OC是动态语言,而Swift是静态语言,这就是为什么两者在使用pod时关于这句话是否要加上的浅显原因(其实深入的东西就需要接着百度了)

    既然原因找到了,解决它就好办了,我们只要把这两种语言的开源框架分开管理就可以了。。。。



    展开全文
  • OCSwift混合编程引用Pods管理的模块 用Pods安装需要使用的模块后,打开.xcworkspace文件,然后按下图所示设置一下User Header Search Paths: swift中创建OC桥接文件 a. 自动创建桥接文件(仅限于swift工程中第...

    OC和Swift混合编程引用Pods管理的模块

    1. 用Pods安装需要使用的模块后,打开.xcworkspace文件,然后按下图所示设置一下User Header Search Paths:
      这里写图片描述
      这里写图片描述
    2. swift中创建OC桥接文件
      a. 自动创建桥接文件(仅限于swift工程中第一次建立OC文件),创建完桥接文件后还需要像b中最后一个图一样设置一下Object-C Bridging Header的路径:
      这里写图片描述
      这里写图片描述
      这里写图片描述
      这里写图片描述
      这里写图片描述

    b. 手动创建桥接文件并设置对应的参数
    在swift工程中新建一个.h文件,用于桥接
    这里写图片描述
    这里写图片描述

    然后就能愉快的调用OC中的模块了。
    这里写图片描述

    参考文章:
    http://www.jianshu.com/p/c399297f3869

    展开全文
  • 这里主要说几个关于cocoapods导入三方需要注意的问题和我遇到的坑 1、swift语言使用cocoapods配置...2、swift调用oc的三方  a、要建立一个桥接文件,然后在target——>build setting中搜索bridg 把Objectiv

    这里主要说几个关于cocoapods导入三方库需要注意的问题和我遇到的坑

    1、swift语言使用cocoapods配置Podfile文件时要加上use_framework!这句代码,作用是把三方库打包成静态库,具体为什么我也在研究。。。

    2、swift调用oc的三方库

      a、要建立一个桥接文件,然后在target——>build setting中搜索bridg


    把Objective-C Bridging Header路径设置一下,一定要设置对,如果你的桥接文件不是和project工程文件在同一级项目目录中,要记得把你的文件所在的目录加进路径,一定要确保根据这个路径可以找到你的桥接文件。

      b、在桥接文件中引用你要调用的三方库的文件名,(这里有坑,我在下面会说明),然后你就可以愉快的使用的库了。在使用的文件中直接用,不用再次导入


    3、调用oc三方库遇到的坑,这里我用AFNetWorking举例

      a、#import "AFNetWorking.h"之后要设置一个User Header Search Paths,否则在需要用三方库的地方是调不出来的。在target——>Build Setting里找到search Paths,双击User Header Search Paths后面的空白处,设置目录路径为${SRCROOT}   ,后边选择recursive。注意不要 #import <AFNetWorking/AFNetWorking.h>这样导入


      b、引用三方库的时候,需要在方法中或者声明为常量或者变量才能联想出这个库内的文件。只能说swift真的不是一般的严格。

    展开全文
  • https://www.jianshu.com/p/429a2dfb1040 这个链接地址解决办法有效,供参考,谢谢

    https://www.jianshu.com/p/429a2dfb1040

    这个链接地址解决办法有效,供参考,谢谢

    展开全文
  • 首先吐槽一下网上的处理我试了试都没有成功,下面是我推荐的一种解决方法 打开项目->build Settings -> 搜索User Header Search Paths -> 添加 $(PODS_ROOT) 再重启一下Xcode试试 ...
  • OC 项目中使用基于 Swift 的 CocoaPods 随着 Swift 的流行,各种神奇的也开始有对应的 Swift 版本了,而其中一些更神奇的却只有 Swift 版本… 正巧接手了一个前人用 Swift 写的项目,里面有一个...
  • OCSwift混编(惊喜!)

    2015-05-12 20:30:25
    今天在和一位前辈交流的之后,使用了OCSwift混编开发,遇到了一个让我忍不住要欢呼的情况,在这里,跟大家分享一下,也再次赞叹一下XCode的强大.OCSwift混编出现最多的就是在编写Swift代码的过程中使用OC框架了....
  • 但是由于swift才出来不久,目前很多cocoapods管理的第三方依然是由Objective-C编写的。 为了能够在swift中使用这些类库,需要在Xcode中进行一些配置。 假设你的项目是基于cocoapods的,并且
  • swift调用oc: 需要在统一的bridge头文件(xxx-Bridging-Header.h)里面import,然后即可使用。 oc调用swift: 需要在暴露出来的方法和属性上加@objc否则不可用。需要在工程配置里面做一些小改动。 具体设置和内容...
  • SwiftOC混编

    2020-07-30 23:30:03
    SwiftOC混编,OC项目下SwiftOC的互相调用,Swift项目下SwiftOC的相互调用!
  • 首先就是在 targets->Build Setting ->Packaging 中设置 Defines Module为YES  然后创建swift文件时会生成"文件名-Bridging-Header.h"这样一个桥接文件 怎样使用cocoapods就不多... 因为swift使用的是框架而不是静态
  • 由于本人在开发过程中主要用的是OC语言,所以pod的都是OC库,Podfile里又没加use_frameworks!所以一直都是.a类型的。后来因为需求需要用到一个只有swift版本的,就使用use_frameworks!将所有.a变成了.framework...
  • 最近想试着开始写学着swift项目了,然后就在用cocoapods pod下来的第三方框架的时候出现了问题,先以为是自己创建桥接文件后,配置出错了,但是网上的那些文章都还是能把桥接文件处理好,言归正传,先上图 ...
  • swift开发过程中我们难免会使用一些OC的开源来附注项目开发。这就涉及到OCswift的混编了,正好本人最近也在模仿斗鱼直播的项目,自己也使用了OC的第三方,今天就给大家介绍一下自己的使用过程。 一、导入第...
  • WWDC推出了SwiftUI、Combine,仅Swift可用~为了能顺利的也吃上SwiftUI,我也打算将自己的项目先从OC慢慢迁移到Swift,所以~一起从混编开始! 创建Swift的view 正常创建文件,语言选swift 创建Bridging Header 上...
  • OCSwift混合使用

    2017-07-11 09:13:02
    随着swift趋向于稳定,越来越多的公司启动的新项目也想使用swift过把瘾,使用swift的好处与弊端不再赘述。目前版本是swift3.0,而且Xcode9beta版中已经更新到swift4.0。使用swift开发是大趋势,...OC引用Swift第三方
  • pod组件化,swift,objective-c混合开发pod 组件化管理swift objective-c混合开发pod注意事项 pod 组件化管理 创建swift工程(PodSwift) 创建objective-c工程(httpmanager) 进入工程目录下创建spec pod lib ...
  • #### 1、OC工程项目导入Swift 版本的framework静态后,模拟器和真机编译都通过,但是模拟器环境下无法调用里面的类,真机环境可以 #### 2、如果是Swift项目工程引入这个Swift静态没有任何问题 1、 真机可以...
  • OCSwift混编

    2018-07-19 11:31:59
    首先要说明的是,混编时,比如工程原先用oc,你突然创建了一个swift文件,那么xcode会弹出一个是否创建侨界文件的提示,点击是...1.OC里调用swift: xcode会隐形生成类似类似 “工程名-Swift.h”的文件,直接#imp...
  • 最近swift版本逐渐的稳定下来了,而且swift的语言写起来更加的简洁,加上年前已经用swift写了一个工具app,最近在做项目优化,打算把定位功能封装成一个pod库,由于功能简单,决定用swift语言来写。里面坑点仍然不少...
1 2 3 4 5 ... 20
收藏数 1,683
精华内容 673
关键字:

oc库 swift 引用pod