oc使用swift库_oc和swift混编 导入swift 第三方库 - CSDN
  • 1、我们先创建一个OC的项目MyFirstOCUseSwiftDemo 2、我们点击Target看到右边选择Build Settings,把Defines Module改为YES, 3、我们回到工程目录下,New File一个Swift File,起名为MyFristSwift,此时会...

    1、我们先创建一个OC的项目MyFirstOCUseSwiftDemo

    2、我们点击Target看到右边选择Build Settings,把Defines Module改为YES,

    3、我们回到工程目录下,New File一个Swift File,起名为MyFristSwift,此时会弹框提示我们是否创建一个桥接文件,如图:

    4、创建好之后我们再次选择项目的Target看到右侧的Build Settings选项,往下滑动会看到这样一个目录:

    此时是系统为我们自动创建了桥接"项目名-Swift"文件和"项目名-Bridging-Header"文件;

    5、接下来我们开始创建自己的Swift文件,新建一个Swift起名为:MyFristSwift,它看起来应该长这样:

    import Foundation
    import UIKit
    
    
    class MyFristSwift: UIViewController {
        
        override func viewDidLoad() {
            super.viewDidLoad()
         
            self.view.backgroundColor = UIColor.green
    
        }
        
        
        
        override func didReceiveMemoryWarning() {
            super.didReceiveMemoryWarning()
            // Dispose of any resources that can be recreated.
        }
    }

    6、接下来我们要在OC的控制器(也就是你想要调用Swift的OC控制器)里边import一下第四步图中展示的swift文件,此时注意的是这个头文件是手动写的,你也可以在第四步中复制Objcective-C Generated Interface Header Name对应的值;

    7、好了,这是最后一步,在OC控制器中 创建一个按钮进入我们的swift页面吧,它应该是这样的:

    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view.
        //创建属于我们自己的按钮
        [self.view addSubview:self.nextBtn];
    
    }
    - (void)nextBtnClicked:(UIButton *)btn{
        // 使用Swift的类
        MyFristSwift *swiftVC = [[MyFristSwift alloc] init];
        [self presentViewController:swiftVC animated:YES completion:nil];
    }
    -(UIButton *)nextBtn{
        
        if (!_nextBtn) {
            
            _nextBtn = [UIButton buttonWithType:UIButtonTypeCustom];
            _nextBtn.frame = CGRectMake(40, 100, 100, 44);
            _nextBtn.layer.masksToBounds = YES;
            _nextBtn.layer.cornerRadius = 4;
            _nextBtn.titleLabel.textAlignment = NSTextAlignmentCenter;
            [_nextBtn setTitle:@"进入Swift" forState:UIControlStateNormal];
            [_nextBtn setBackgroundColor:[UIColor brownColor]];
            [_nextBtn addTarget:self action:@selector(nextBtnClicked:) forControlEvents:UIControlEventTouchUpInside];
        }
        return _nextBtn;
    }
    

     

    展开全文
  • 今天研究了一下如何在OC项目中使用swift文件,即OCswift的混编问题,发现在OC中要使用swift文件也是蛮简单的,实践过程列如下: 1)首先随便创建了一个OC项目,就叫 DetialViewDemo 2)因为Swift的代码默认是...

    最近在研究swift,就我看来,swift确实是比OC更优秀的语言,这可以体现在很多方面,网上已经对比的很透彻,就不一一赘述。
    今天研究了一下如何在OC项目中使用swift文件,即OC和swift的混编问题,发现在OC中要使用swift文件也是蛮简单的,实践过程列如下:
    1)首先随便创建了一个OC项目,就叫 DetialViewDemo
    这里写图片描述
    2)因为Swift的代码默认是使用module管理的,所以两者混编的最重要的一步,就是把我们的Swift代码作为一个module暴露给OC工程,具体步骤如下:
    这里写图片描述
    3)创建一个swift文件或者将已有的swift文件拖入项目中,我这里是拖入了一个练习swift写的一个类:
    这里写图片描述
    注意点:swift文件添加的时候会提示是否添加桥接文件,直接点击不创建就OK
    4)好了,文件都准备好了,接下来就需要在使用到swift文件的类中引入”Product Module Name-Swift.h”,其中Product Module Name其实就是项目的名称,这个在上面配置Module的图中也能看到,然后我们就可以愉快地和swift进行玩耍了
    这里写图片描述
    注意:引入Product Module Name-Swift.h的时候不一定自动提示,手写之后编译就可以了

    当然,我很好奇这是怎么回事,然后我就command+点击 Person 进入了内部查看,发现原来苹果将所有的swift文件中的代码转成了oc的代码,不管你引入多少个swift文件,都会一股脑在Product Module Name-Swift.h文件中翻译成oc文件以便我们oc程序调用
    这里写图片描述

    怎么样,很强大吧,朋友们赶紧转过来吧,开始自己的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第三方库的方法就说到这,欢迎留言讨论~

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

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

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

    展开全文
  • swift开发过程中我们难免会使用一些OC的开源来附注项目开发。这就涉及到OCswift的混编了,正好本人最近也在模仿斗鱼直播的项目,自己也使用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)")
        }
    }
    
    
    展开全文
  • OCSwift混编Pod引入第三方的问题 问题描述:Swift应用OC 的开源框架,需要创建一个桥接头文件,问题就出在这个看似简单,却隐藏着一个巨大的问题:一切都按部就班的在桥接头文件中引入了OC 头文件,但是...
  • OCSwift混合使用

    2017-07-11 09:13:02
    随着swift趋向于稳定,越来越多的公司启动的新项目也想使用swift过把瘾,使用swift的好处与弊端不再赘述。目前版本是swift3.0,而且Xcode9beta版中已经更新到swift4.0。使用swift开发是大趋势,这里从以下几个方面看...
  • 首先就是在 targets->Build Setting ->Packaging 中设置 Defines Module为YES  然后创建swift文件时会生成"文件名-Bridging-Header.h"这样一个桥接文件 怎样使用cocoapods就不多... 因为swift使用的是框架而不是静态
  • OC 项目中使用基于 Swift 的 CocoaPods 随着 Swift 的流行,各种神奇的也开始有对应的 Swift 版本了,而其中一些更神奇的却只有 Swift 版本… 正巧接手了一个前人用 Swift 写的项目,里面有一个...
  • 之前在开发是遇到了在OC文件中调用Swift对象的变量调用不到的问题,这里总结一下: 1.首先我们一个Swift项目TestProject。 2.建立一个Swift的文件继承自NSObject名字为SwiftFile.swift,并声明一个字符串变量...
  • OCswift相互调用

    2017-04-26 11:39:33
    一、OC调用swift文件 二、swift调用OC文件 三、注意和总结 添加: 四、自定义桥接文件  一、OC调用swift文件  在OC项目中创建一个swift文件的时候,Xcode 会提示 需要创建一个桥接文件,点确定...
  • OC项目引入使用swift编写的三方后,报错 错误描述:The “Swift Language Version” (SWIFT_VERSION) build setting must be set to a supported value for targets which use Swift. This setting can be set ...
  • 这里主要说几个关于cocoapods导入三方需要注意的问题和我遇到的坑 1、swift语言使用cocoapods配置...2、swift调用oc的三方  a、要建立一个桥接文件,然后在target——>build setting中搜索bridg 把Objectiv
  • 后来因为需求需要用到一个只有swift版本的,就使用use_frameworks!将所有.a变成了.framework。然后信心满满地运行工程,结果GG。最后归纳出几个需要注意的点:1.将用到的提示找不到的,从#import &lt;xxx....
  • iOS开发之swiftOC混编出现的坑,oc中不能对swift的代理进行调用,不能访问swift中的代理,swift中的回调方法
  • OCswift混编

    2019-02-20 00:38:40
    相信很多iOS开发或多或少已经使用swift,由于维护的项目时间比较久了,以往都是使用OC开发,现在正在对已有一些功能进行改版重写,索性使用swift来做,以下是在使用OCswift进行混编过程的一些介绍。一、工程配置...
  • #### 1、OC工程项目导入Swift 版本的framework静态后,模拟器和真机编译都通过,但是模拟器环境下无法调用里面的类,真机环境可以 #### 2、如果是Swift项目工程引入这个Swift静态没有任何问题 1、 真机可以...
  • OC中调用Swift代码方法

    2018-06-03 09:27:48
    最近在项目中使用到了Swift语言写的第三方的框架,所以在这里将OC使用Swift的方法说明一下。1.首先要在Build Setting中进行相关配置2.在Podfile文件中要加上use_frameworks!为什么要加use_frameworks!呢?首先需要...
  • 项目中有这个需求,查看了很多资料,自己再Mark一下: 1、如果项目中没有swift文件,需要创建一...3、在pods中找到集成的swift三方,在Build Settings中搜索swift language version,改成三方所支持的最高版本...
  • 随着 swift 的不断完善 项目中或多或少 有可能会用到 swift 的第三方 而有时候你又需要把你的项目打包给别的公司去用,就需要OCswift 混合打包  现在提供一种分开打包的方法: 在自己的项目中你可以直接用桥...
1 2 3 4 5 ... 20
收藏数 5,687
精华内容 2,274
关键字:

oc使用swift库