• SwiftOC混编(一) 2017-07-04 19:32:34
    SwiftOC混编(一)由于最近swift版本趋于稳定的趋势,本人也一直在研究并尽可能的将swift用于现有的项目中,希望逐渐的替代之前的OC代码。废话不多说,直接上!1、既然希望在OC中使用swift,那么第一步肯定需要...
    #Swift和OC的混编(一)
    ***
    由于最近swift版本趋于稳定的趋势,本人也一直在研究并尽可能的将swift用于现有的项目中,希望逐渐的替代之前的OC代码。废话不多说,直接上!
    ***
    **1、既然希望在OC中使用swift,那么第一步肯定需要先创建一个swift文件(虽然第一步可能要配置一些东西,这边我们按照常规的思想操作),创建过程中会给出提示**
    ![提示是否创建桥接文件](https://img-blog.csdn.net/20170704185244396?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbHcxMzUyNjE3NjEy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
    
    ```
    直接点击(Create Bridging Header)即可。之后会生成这样一个文件
    ```
    ![桥接文件](https://img-blog.csdn.net/20170704185535276?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbHcxMzUyNjE3NjEy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
    ```
    测试中发现,只有当swift调用OC类的时候,该文件才会有用。当然,你也可以重新设置它的名称,那么就需要重新设置它的路径
    ```
    ![修改桥接文件的路径](https://img-blog.csdn.net/20170704185813999?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbHcxMzUyNjE3NjEy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
    ```
    当你默认点击create,并且没有做任何修改的时候,该路径是默认创建的。
    ```
    **2、修改swift的相关配置**
    ![修改swift相关配置](https://img-blog.csdn.net/20170704190401701?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbHcxMzUyNjE3NjEy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
    ```
    Defines Module值必须要修改为YES。有文说,swift是以module方式管理的,所以该选项必要要设置为YES。
    ```
    **3、在OC中引入相关头文件**
    ![OC中引入swift相关头文件](https://img-blog.csdn.net/20170704190805023?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbHcxMzUyNjE3NjEy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
    ```
    其实,该头文件就是之前所需要记下的(项目名称(默认值)+"-Swift")构成,这时候,就可以在OC类中直接使用swift类了。
    ```
    **4、其实,这时候,系统帮我们自动生成了一个中转类**
    ![系统生成的中间类](https://img-blog.csdn.net/20170704191104306?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbHcxMzUyNjE3NjEy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
    ```
    这是系统根据swift文件所对外公开的方法和属性等生成的一个中间类(上下就是其他swift文件的中间类),所以我们在OC中调swift文件时所使用的语法,其实还是OC语法,并不影响我们使用。
    ```
    **5、swift类中引用OC类**
    这里我创建了一个OC类型的Model,希望在OC的VC里面配置,然后传给swift类的View。
    ![OC类model](https://img-blog.csdn.net/20170704191819041?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbHcxMzUyNjE3NjEy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
    
    ```
    现在就需要用到之前系统所帮忙创建的桥接(我是这么称呼它的~)文件了。
    需要在该文件中引入你想在swift中所调用的类的头文件。
    ```
    ![桥接文件配置](https://img-blog.csdn.net/20170704192203871?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbHcxMzUyNjE3NjEy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
    
    ```
    下面就可以在swift类中直接调用OC类
    ```
    ![swift类中使用OC类](https://img-blog.csdn.net/20170704192247675?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbHcxMzUyNjE3NjEy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
    
    ```
    在目标swift文件中,直接使用OC类model就不会出错了。至于willSet和didSet方法,这边主要用于类似OC中的set方法(swift也有get和set方法),具体会在后面详解。现在就需要在OC类中给该swift类传一个model值过来,并打印出结果。
    ```
    ![OC类中给swift类传值](https://img-blog.csdn.net/20170704192528612?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbHcxMzUyNjE3NjEy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
    这边再截图一下那个系统帮忙生成的中间类,会看到model这个属性值
    ![](https://img-blog.csdn.net/20170704192720370?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbHcxMzUyNjE3NjEy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
    
    ```
    所以,只要做好相关配置之后,对于我们而言,使用的还是OC语法。至于哪些属性或者
    方法会在系统中间类中生成,会在后面有机会再说,这并不是本篇内容的重点。
    下面打印一下我们的传值结果,来验证一下
    ```
    ![传值打印结果](https://img-blog.csdn.net/20170704192933531?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbHcxMzUyNjE3NjEy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
    
    ```
    可以看出,就到目前而言,我们已经完全可以不去管我们在调用的是否还是swift文件了。因为就现在而言,我们的调用全都是OC语法。
    ```
    
    ```
    暂时先到这,通篇大白话,如果错误,希望不吝指出,一起共勉!!!
    ```
    
    
    
    
    展开全文
  • 项目中右键添加一个swift文件,我添加的LearnSwift.swift添加后Xcode弹出‘是否配置oc桥接头文件’的提示,点确认,系统自动生成一个项目名-Bridging-Header.h的文件,我的是LearnSwift-Bridging-Header.h。...
  • OC Swift 混编 2017-08-30 13:29:01
    只能退而求其次,混编了,大致根据百度到的方法试了一下,不是很难,总结起来就是两点:一、oc工程混编swift文件1.新建swift文件,首次新建的时候会提示是否创建桥接文件,选择创建,不要修改文件的名字,一般默认是...
  • 原有的项目都是使用OC写的,既然要在原有项目中引入swift文件首先就要实现OCswift混编设置。 混编设置: 在OC项目中创建一个swift文件的时候首先Xcode会弹出一个提示框: 这时我们要选择“Create ...
  • OCswift混编 2019-02-20 00:38:40
    相信很多iOS开发或多或少已经使用过swift,由于维护的项目时间比较久了,以往都是使用OC开发,现在正在对已有一些功能进行改版重写,索性使用swift来做,以下是在使用OCswift进行混编过程的一些介绍。一、工程配置...
  • OCSwift混编 2016-01-26 10:16:30
    Swift发展势头越来越好,而很多公司很难一下子从OC全部切换到swift,这个时候混编就显得那么的重要,本人也在逐渐的尝试混编然后逐步取代OC,从而全部转到swift上。 其实,从2014年swift刚出来的时候就开始研究swift...
  • ocswift混编 2020-06-21 16:48:13
    这是需要做ocswift混编需要用到的,现在oc的发展变慢,swift成长很快,需要这种技术的请下载,如果不是做ios的请慎重
  • SwiftOC混编 2020-05-18 16:24:31
    Swift和OC混编,OC项目下Swift和OC的互相调用,Swift项目下Swift和OC的相互调用!
  • 说起这个话题,在我看来,比项目中的OC混编C++,C等简单些,毕竟OC和Swift都是苹果自己的开发语言,API什么的都一样,还是更容易混合开发些,好了,废话不多说,切正题,OC与Swift怎么混和开发呢?OC类中可以引入...
  • OCSwift混编.pdf 2020-06-03 23:32:33
    OC混编Swift, Swift项目混编Objective-C Framework Target混编。 Swift 怎么遵循 OC运行时 混编的一些坑
  • OCSwift是苹果爸爸的原生语言,Swift代替OC的成本太高,需要过度和时间,但是现在的Swift的成长很快,在这个矛盾的时间,我们必须混编了。 1、创建一个新的工程 ,工程的名字叫OCAndSwiftDemo。 2、配置工程...
  • OC与swift混编在最上层项目混编swift引用swiftswift引用OCOC引用swiftOC引用OC在Framework层混编swift引用swiftswift引用OCOC引用swiftOC引用OC上层项目引用Framework时混编swift引用swiftswift引用OCOC引用swift...
  • oc swift混编实践问题总结 2016-10-13 15:34:28
    所以,我们团队开始尝试探索把我们庞大的项目实现ocswift混编。至于为什么不直接重构,那是因为实在是时间和事实不允许,毕竟我们的APP已经是好几年的庞然大物了。  言归正传,我开始尝试着用swift来重写一个oc...
  • IOS --- OCSwift混编 2017-05-16 18:08:38
    先中简单的入手,先研究在同一个工程目录下混合使用的情况。...[cpp] view plaincopy--- OCSwift混编" TITLE="IOS --- OCSwift混编" />--- OCSwift混编" TITLE="IOS --- OCSwift混编" /> impor
  • Swift 语言出来后,可能新的项目直接使用swift来开发,但可能在过程中会遇到一些情况,某些已用OC写好的类或封装好的模块,不想再在swift 中再写一次,或者有一些第三方使用OC写的,没有swift版本,怎么办?那就使用...
  • OCSwift混编的三种情况 2020-06-05 23:30:29
    OCSwift混编的三种情况: 1、OC工程中写入Swift文件并随手创建桥接文件 2、Swift工程中写入OC文件并随手创建桥接文件 3、混编时舍弃创建桥接文件,手动再创建一遍的方法
  • OCswift混编包太大 2018-01-29 17:29:50
    OCswift混编包太大问题
  • swiftOC进行混合编码。
  • swift oc混编 打包framwork 2017-05-06 18:47:20
    但之前的好多有用的东西都是使用OC写的,鉴于这种情况最好的方式当然是使用swift重写,但这样的工作量太大,而且不能保证功能的稳定性,所以自己就尝试的使用Framework来嵌入Swift项目中去。 至于涉及到OC和Swift...
  • 就在15年WWDC上更是把Swift进行了开源,瞬间star就开始不断飙升,截止今天(16年1月25)已经达到26059个star【源码请点击这里】,而且每天还都在不断增长,而且每天都会有Pull Requests。这足以说明全球开发者对这门...
1 2 3 4 5 ... 20
收藏数 1,625
精华内容 650