• 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时关于这句话是否要加上的浅显原因(其实深入的东西就需要接着百度了)

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



    展开全文
  • pod组件化,swift,objective-c混合...创建swift工程(PodSwift) 创建objective-c工程(httpmanager) 进入工程目录下创建spec pod lib create PodSwift 填写提示信息,然后创建需要暴露调用的类所有的swift类 s....

    pod组件化,swift,objective-c混合开发

    pod 组件化管理

    • 创建swift工程(PodSwift)

    • 创建objective-c工程(httpmanager)

    • 进入工程目录下创建spec

      pod lib create PodSwift

      填写提示信息,然后创建需要暴露调用的类所有的swift类

      s.source_files = 'PodSwiftLibs/**/*.swift'

    swift objective-c混合开发

    编译问题查看 https://www.jianshu.com/p/c7623c31d77b
    

    pod注意事项

    • local pod 引用 pod库

      s.dependency "Masonry"

    • 引用预处理宏定义

    local pod库中调用masonry中简写方法需要在spec申明:

    #pod中的macro
     s.pod_target_xcconfig = { 'GCC_PREPROCESSOR_DEFINITIONS' => 'MAS_SHORTHAND=1 MAS_SHORTHAND_GLOBALS=1'}
     #项目中的macro
     s.user_target_xcconfig = { 'GCC_PREPROCESSOR_DEFINITIONS' => 'MAS_SHORTHAND=1 MAS_SHORTHAND_GLOBALS=1'}
     
    

    git:demo地址

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

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

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

    展开全文
  • OCSwift混编(惊喜!)

    2015-05-12 20:30:25
    今天在和一位前辈交流的之后,使用了OCSwift混编开发,遇到了一个让我忍不住要欢呼的情况,在这里,跟大家分享一下,也再次赞叹一下XCode的强大.OCSwift混编出现最多的就是在编写Swift代码的过程中使用OC框架了....

    今天在和一位前辈交流的之后,使用了OC和Swift混编开发,遇到了一个让我忍不住要欢呼的情况,在这里,跟大家分享一下,也再次赞叹一下XCode的强大.

    OC和Swift混编出现最多的就是在编写Swift代码的过程中使用OC框架了.
    以前,在XCode6.3beta版本的时候,我犹记得我们在进行OC和Swift混编的时候,需要这样做.

    • 先通过Pod导入第三方框架,然后,
    • 使用 Xcode 打开工作组文件
    • 在 Supporting Files 下添加桥接文件 Test-Bridge.h
      输入以下内容

      #import <SDWebImage/UIImageView+WebCache.h>
      #import <SVProgressHUD/SVProgressHUD.h>
      

      点击 项目 - TARGETS - Build Settings
      搜索 bridg
      在 Objective-C Bridging Header 中输入 Test/Weibo-Bridge.h
      然后导入命名空间.

    而现在!!!!!!!
    我要告诉大家一个惊天好消息!!!
    就是!
    在XCode6.3.1版本以后,我们在用Pod导入第三方框架后,再也不需要做任何配置了,直接就可以使用,今天亲测发现!!!

    展开全文
  • 首先就是在 targets->... 然后创建swift文件时会生成"文件名-Bridging-Header.h"这样一个桥接文件 怎样使用cocoapods就不多说了 最重要的就是在Podfile里面加上use_frameworks! 因为swift使用的是框架而不是静态库

    首先就是在 targets->Build Setting ->Packaging 中设置 Defines Module为YES

      然后创建swift文件时会生成"文件名-Bridging-Header.h"这样一个桥接文件

    怎样使用cocoapods就不多说了

    最重要的就是在Podfile里面加上use_frameworks!   因为swift使用的是框架而不是静态库



    展开全文
  • OC 项目中使用基于 Swift 的 CocoaPods 库 随着 Swift 的流行,各种神奇的库也开始有对应的 Swift 版本了,而其中一些更神奇的库却只有 Swift 版本… 正巧接手了一个前人用 Swift 写的项目,里面有一个...
  • OCSwift混编

    2018-07-19 11:31:59
    首先要说明的是,混编时,比如工程原先用oc,你突然创建了一个swift文件,那么xcode会弹出一个是否创建侨界文件的提示,点击是(不点击也行,在系统...xcode会隐形生成类似类似 “工程名-Swift.h”的文件,直接#imp...
  • SwiftOC混编

    2020-05-18 16:24:31
    SwiftOC混编,OC项目下SwiftOC的互相调用,Swift项目下SwiftOC的相互调用!
  • OCSwift混合使用

    2017-07-11 09:13:02
    随着swift趋向于稳定,越来越多的公司启动的新项目也想使用swift过把瘾,使用swift的好处与弊端不再赘述。目前版本是swift3.0,而且Xcode9beta版中已经更新到swift4.0。使用swift开发是大趋势,这里从以下几个方面看...
  • OC和Swift混合编程引用Pods管理的模块 用Pods安装需要使用的模块后,... 自动创建桥接文件(仅限于swift工程中第一次建立OC文件),创建完桥接文件后还需要像b中最后一个图一样设置一下Object-C Bridging Header的路径:
  • 由于本人在开发过程中主要用的是OC语言,所以pod的都是OC库,Podfile里又没加use_frameworks!所以一直都是.a类型的。后来因为需求需要用到一个只有swift版本的库,就使用use_frameworks!将所有.a库变成了.framework...
  • SwiftOC 互相调用

    2018-07-20 16:19:07
    Swift 调用 OC Swift 调用 OC 分为两种常见情况,一种是直接在 Application 的 project 中使用;另一种情况是,在 framework 开发中使用。 对于互相调用的原理,如下图所示,更详细的内容可以参考 《Using Swif ...
  • #### 1、OC工程项目导入Swift 版本的framework静态库后,模拟器和真机编译都通过,但是模拟器环境下无法调用库里面的类,真机环境可以 #### 2、如果是Swift项目工程引入这个Swift静态库没有任何问题 1、 真机可以...
  • iOS OC项目调用Swift

    2017-03-17 13:51:27
    网上有很多关于OC项目中使用Swift类的方法,但是亲自试了之后,发现不够详细,多次尝试后,终于找出详细的方法。 现把方法和遇到的问题,记录下来,方便其他同仁借鉴.
  • swift开发过程中我们难免会使用一些OC的开源库来附注项目开发。这就涉及到OCswift的混编了,正好本人最近也在模仿斗鱼直播的项目,自己也使用了OC的第三方库,今天就给大家介绍一下自己的使用过程。 一、导入第...
  • 关于OCSwift混编过程中 “xxxx-Swift.h”为找到的问题 在对OCSwift混编中,加了3个target: 但是在混编过程中,某两个Target 提示找不到 “xxxxx-Swift.h” 在网上找了很多资料,说“xxxx-Swift.h”名字必须与...
  • 这里直接说问题,在swift项目中,当你通过Cocoapods pod导入OC的第三方文件,然后你去桥接文件里面添加该第三方的头文件(例如:MBProgressHUD等),你会发现会报错,错误是说没有找到该文件,也就是路径问题,下面...
  • 这里主要说几个关于cocoapods导入三方库需要注意的问题和我遇到的坑 1、swift语言使用cocoapods配置...2、swift调用oc的三方库  a、要建立一个桥接文件,然后在target——>build setting中搜索bridg 把Objectiv
  • ocswift混编教程

    2016-04-11 14:14:58
    1、创建一个swift或者oc工程:我这里是创建的Swift语言的工程工程名SwiftTest      2、在工程中代码目录下创建一个oc的类,选择oc语言, 会出一个对话框,选择YES      3、这时会在工程里看到下...
  • 为了更好地学习,本人决定将学习的swiftOC进行下对比。 对比: 1.import的类 OC:某个只要要使用某个类就要将该类import。 swift:如果是用户自己创建类,其他类无需import可以直接使用。pod的一些三方类和...
1 2 3 4 5 ... 20
收藏数 1,651
精华内容 660