• OC项目中,有可能会遇到需要引入Swift写的第三方库,下面整理下OC项目如何使用Swift库 1.在已有的OC工程中新建一个Swift文件,命名为Test.swift,会弹出提示,选择Create Bridging Header建立桥接文件,系统会建立...

    OC项目引入Swift方法

    在OC项目中,有可能会遇到需要引入Swift写的第三方库,下面整理下OC项目如何使用Swift库

    1.在已有的OC工程中新建一个Swift文件,命名为Test.swift,会弹出提示,选择Create Bridging Header建立桥接文件,系统会建立“工程名-Bridging-Header.h”




















    2. 配置工程

    设置Defines Module 为Yes


    设置Product Module Name 为当前工程名 (有时系统会自动为我们设置好)


    此时系统会为工程创建一个“工程名-Swift.h”的文件(不会显示出来,可以引用),此文件不可手动创建,必须使用系统创建的

    3.测试是否成功

    新建一个Swift文件,写一个Swift的函数

    import UIKit
    
    class Test1: NSObject {
    
        func show()
        {
            print("hello baby!")
        }
    }

    在OC工程里调用该函数


    成功!

    以后在使用的地方直接引用"工程名-Swift.h",不需要引用Swift文件














    展开全文
  • swift导入oc第三方库

    2019-05-05 15:31:39
    对于ios开发而言,目前很多第三方库或者demo还是以oc为主,swift相关的资料很少,这篇文章就结合博主的开发实例对在swift工程中导入并使用oc版本的第三方库进行阐述。 正文 1.编写oc桥接头文件 顾名思义,将oc编写的...

    swift导入oc第三方库

    前言

    对于ios开发而言,目前很多第三方库或者demo还是以oc为主,swift相关的资料很少,这篇文章就结合博主的开发实例对在swift工程中导入并使用oc版本的第三方库进行阐述。

    正文

    1.编写oc桥接头文件

    顾名思义,将oc编写的库桥接到swift工程里的头文件。
    结合实战,首先我在项目工程的根目录下创建一个名为xxxx.h的.h文件,内容如下,暂时不去修改:

    #ifndef xxxx_h
    #define xxxx_h
    #endif 
    

    接着,在项目的targets里的Build Settings选项里,找到Objective-c Bridging Header选项:

    在这里插入图片描述
    将这一项设置为刚刚创建的.h文件,如“xxxx.h”

    2.导入第三方库

    做完第一步,准备工作就已经做好了,接下来也很简单。我在这里分两种情况进行阐述。
    (1)framework形式导入的第三方库:
    例如集成支付宝的sdk(https://docs.open.alipay.com/204/105295/),导入后项目里会存在AlipaySDK.framework文件。这个时候在swift中,你还是不能直接引用支付宝相关的类和方法的,这个时候,我们在刚刚创建的桥接文件里,加上:

    #ifndef xxxx_h
    #define xxxx_h
    //导入支付宝的OC的头文件
    #import <AlipaySDK/AlipaySDK.h>
    #import <AlipaySDK/APayAuthInfo.h>
    #endif 
    

    然后你会发现,在代码里,你就可以正常调用支付宝SDK中的类和方法了,就这么简单。
    (2)直接拷贝的第三方库:
    例如第三方客服平台Udesk的集成(http://www.udesk.cn/doc/ios/udesksdk_ios/),按其要求手动将第三方工程文件导入你的项目中后,你的项目会存在如下的文件夹:

    此时,仍然需要在桥接文件里将你所需要用到的类文件导入,如:

    #ifndef xxxx_h
    #define xxxx_h
    //导入Udesk的OC的头文件
    #import "UdeskSDK/SDK/UdeskAgent.h"
    #import "UdeskSDK/SDK/UdeskCustomer.h"
    #import "UdeskSDK/SDK/UdeskManager.h"
    #import "UdeskSDK/SDK/UdeskMessage.h"
    #import "UdeskSDK/SDK/UdeskOrganization.h"
    #import "UdeskSDK/SDK/UdeskSetting.h"
    #import "UdeskSDK/UDChatMessage/Udesk.h"
    #endif 
    

    然后,在项目targets的general选项中,找到“Linked Frameworks and Libraries”,将第三方库中的.a文件添加进去:


    点击add other…之后选择.a文件即可。接下来你就可以在swift中调用第三方库的类和方法了。

    swift导入oc第三方库的方法就说到这,欢迎留言讨论~

    展开全文
  • 这就涉及到OCswift的混编了,正好本人最近也在模仿斗鱼直播的项目,自己也使用了OC第三方库,今天就给大家介绍一下自己的使用过程。 一、导入第三方库 这里需要注意点,我使用pod导入OC第三方库...

    在swift开发过程中我们难免会使用一些OC的开源库来附注项目开发。这就涉及到OC和swift的混编了,正好本人最近也在模仿斗鱼直播的项目,自己也使用了OC的第三方库,今天就给大家介绍一下自己的使用过程。

    一、导入第三方库

    这里需要注意点,我使用pod导入OC的第三方库SDCycleScrollView,然后进行配置出现找不到SDCycleScrollView的错误,最后还是直接复制SDCycleScrollView到项目中才解决的问题,这一点还不知道为什么,希望清楚的这个问题的同学指正。

    二、创建头文件

    创建一个头文件,然后将SDCycleScrollView.h文件导入到头文件中。
    创建头文件
    导入头文件

    三、配置桥接头文件

    在Build Setting里面搜索bridging,然后向Objective-C Bridging Header中添加我们创建的头文件的地址,如下图:
    配置头文件

    四、使用OC方法

    还是使用swift的方法调用就可以。

     let imageNames = ["1.png", "2.png", "3.png", "4.png","5.png"]
            let cycleScrollView = SDCycleScrollView.init(frame: CGRect (x: 0, y: 0, width: self.view.frame.size.width, height: 200), shouldInfiniteLoop: true, imageNamesGroup: imageNames)
            cycleScrollView?.delegate = self
            self.view.addSubview(cycleScrollView!)
    

    五、OC代理方法的使用

    第三方的方法会自动转成swift的方法,所以只要还是使用swift的方法调用就可以啦!

    /*
     1、按照swift的代理执行方式来就可以。
     */
    extension RecommendVC : SDCycleScrollViewDelegate{
        //图片滚动回调
        func cycleScrollView(_ cycleScrollView: SDCycleScrollView!, didScrollTo index: Int) {
            print("图片滚动回调\(index)")
        }
        //点击图片回调
        func cycleScrollView(_ cycleScrollView: SDCycleScrollView!, didSelectItemAt index: Int) {
            print("点击图片回调\(index)")
        }
    }
    
    
    展开全文
  • 在进行swift编程的时候,有时候难免要进行与Objective-c的混编(如引入OC语言的第三方库),本文主要讲述swiftOC混编的两种方法。 一.比较方便直接的方法 1.直接在创建好的swift工程中任意新建一个OC的类,我们会...

    在进行swift编程的时候,有时候难免要进行与Objective-c的混编(如引入OC语言的第三方库),本文主要讲述swift与OC混编的两种方法。


    一.比较方便直接的方法

    1.直接在创建好的swift工程中任意新建一个OC的类,我们会看到如下图所示的一个提示,直接点Yes即可,之后我们会发现工程中多了一个“工程名”-Bridging-Header.h这样一个.h文件,然后把刚才创建的无用的OC的类删除掉



    2.然后我们只需把用到的OC类的头文件,在这个类里引用就可以了,图中以AFNetworking为例。



    二.在工程里面正八经的设置

    1.新建一个.h文件,命名为 “工程名-Bridging-header”

    2.在Build setting 的 objective-c bridging Header里面添加这个头文件“工程名-Bridging-header.h”(我在这样添加的时候有时候会提示找不到文件的错误,解决办法:添加的头文件名改为“工程名/工程名-Bridging-header.h”)如图,这样实现的效果和方法一里面的是一样的,往下的步骤同方法一中的第2步。



    展开全文
  • 作为ios开发的新语言,相对比较oc 资源还是比较欠缺,有时候开发中,我们需要引入第三方库就不得不引入oc版的第三方库,然后苹果公司也给集成了这样的快捷方式。导入第三方的方法有:1、CocoaPods 2、手动将第三方的...

    声明:

    作为ios开发的新语言,相对比较oc 资源还是比较欠缺,有时候开发中,我们需要引入第三方库就不得不引入oc版的第三方库,然后苹果公司也给集成了这样的快捷方式。导入第三方的方法有:1、CocoaPods 2、手动将第三方的文件复制到工程下。下面我们主要介绍手动导入,我们以导入著名小马哥的下拉刷新为例。


    1、在github上下载第三方的文件拉到工程文件中。



    2、新建一个桥头文件,用于是的我们使用swift语言可以调用添加的oc代码。

     创建一个桥头文件之后要为桥头文件设置桥街头(就是让项目调用这个oc类的时候知道这个配置文件在哪里,就是配置这个桥头文件的所在路径),这里我们介绍两种方法。

    a: 绝对路径,通过直接将桥头文件拉到bash,xcode会自动将改文件的路径配置。

    如图:

             

    b:设置为相对路径。

    首先左键点击工程打开工程所在文件,然后找到head桥头文件。(这里的相对路径是相对工程所在文件的路径,例如桥头文件的工程包名的第一层,我们就只需写上:xxx.h。如果是在工程文件下的相同文件下的一层,ps(就是说如果现在项目A,在文件夹中会打开A,然后会有一个相同的文件包和一个.xocde的工程文件,再次打开A文件发现桥头文件时)),此时需要加上第二层的和项目工程相同的文件名,结果就是:A/xxx.h。

    如图:


    3、在桥头文件中添加第三方库的.h文件

    到这里,我们就实现了在swift工程中引入oc第三方库的方法,就可以在swift类中调用相关方法了。


    展开全文
  • 情景我在桥接文件中直接写入#import 然后在swift文件中得重新导入才可以使用,即import SVProgressHUD项目中很多地方都需要SVProgressHUD,在每一个需要SVProgressHUD的swift文件中再导入一遍那可不是明智的选择解决...
  •  学习过Objective-C的同学肯定会知道,一般会有三种方式导入第三方库,分别是:cocoasPod管理工具,打包成framwork导入,直接导入原文件。然而,swift是苹果在oc基础上研发的一种新语言且开源,当然也继承之前的...
  • OC项目使用swift

    2018-02-02 16:54:34
    1.新建Swift File命名为Common,创建完成会提示是否创建桥接文件,选择Create Bridging Header, 在BeiSu-Bridging-Header文件添加你想引用的OC的文件或者第三方 2.TARGETS - Build Settings 搜索Defines Module, ...
  • https://www.jianshu.com/p/429a2dfb1040 这个链接地址解决办法有效,供参考,谢谢
  • 最近OC项目中有用到第三方swift插件图表,charts,在手动导入过程中遇到一些问题,记录一下,便于以后方便查找 1:新建工程 2:github下载charts文件 3:然后将解压后的文件夹整个拖到自己的工程文件夹下(很多教程只让...
  • Cocoapods 是 iOS 应用的包管理程序。...导入 Alamofire(swift库)和AFNetworking(OC库)这两个个第三方库。本教程的环境基于 iOS8 和 Xcode7.3.1。 打开 Xcode 使用 Single View Application 创建一个项目。项
  • 适用于项目swift项目)之前没创建过oc的类,或(oc项目)swif的类 这里以swift项目为例 既然没用过就创建一个呗Commond+n然后创建,这是会出来一个提示 选择Create Bridging Header就可以了,这样项目...
  • 这里主要借助一个桥梁文件,这个桥梁文件一般在你导入swift代码或者创建swift代码的时候会询问你是否创建,这个时候要选择创建,然后就可以在oc项目里引入桥梁文件,从而可以创建swift对象,使用其相应方法了. ...
  • swift中有一些比较好的框架,比如绘图框架charts,最近项目中刚好...但是,通过pod导入第三方项目如果需要做自定义定制,就没办法修改里面的内容,这样很难受,所以只有不通过pod的方式导入,直接将source文件拖...
  • 但是由于swift才出来不久,目前很多cocoapods管理的第三方库依然是由Objective-C编写的。 为了能够在swift中使用这些类库,需要在Xcode中进行一些配置。 假设你的项目是基于cocoapods的,并且
  • 前言近来开始用swift撸App,想用做一些数据持久化的尝试,数据持久化就五种方法, plist属性列表, NSUserDefaults偏好设置, NSArchieve归档和解档, SQLite3或FMDB, Core Data 前种对增删数据的情况不大友好,...
  • 这里主要说几个关于cocoapods导入三方需要注意的问题和我遇到的坑 1、swift语言使用cocoapods配置Podfile文件时要加上use_framework!这句代码,作用是把三方打包成静态,具体为什么我也在研究。。。 2、...
  • OCSwift混合使用

    2017-07-11 09:13:02
    随着swift趋向于稳定,越来越多的公司启动的新项目也想使用swift过把瘾,使用swift的好处与弊端不再赘述。目前版本是swift3.0,而且Xcode9beta版中已经更新到swift4.0。使用swift开发是大趋势,...OC引用Swift第三方库
  • 在使用cocoapod导入swift第三方时出现这样的错误: [!] Pods written in Swift can only be integrated as frameworks; add `use_frameworks!` to your Podfile or target to opt into using it. The Swift Pod ...
  • 管理第三方库的经验,在swift中使用pod 来管理第三方库就很容易了。 第一步:cd 的工程文件夹下 第二步:pod init 为项目创建一个PodFile文件 第三步:在工程中双击PodFile文件,编辑 pod 'Alamofire' 后,保存...
1 2 3 4 5 ... 20
收藏数 1,074
精华内容 429