• 在项目右键添加一个swift文件,我添加的LearnSwift.swift添加后Xcode弹出‘是否配置oc桥接头文件’的提示,点确认,系统自动生成一个项目名-Bridging-Header.h的文件,我的是LearnSwift-Bridging-Header.h。...
    在项目中右键添加一个swift文件,我添加的LearnSwift.swift添加后Xcode弹出‘是否配置oc桥接头文件’的提示,点确认,系统自动生成一个项目名-Bridging-Header.h的文件,我的是LearnSwift-Bridging-Header.h

    配置oc桥接头文件的提示
    LearnSwift-Bridging-Header.h实质上是一个供swift使用的头文件,在这里把所有要暴露给swift的oc头文件都添加进去,这样写swift的时候就可以直接使用那些oc的类和方法了。
    因为swift本身没有头文件,只有.swift;而oc有.h和.m文件。有了这个声明,.swift就可以直接使用oc的.h了

    我的LearnSwift-Bridging-Header.h文件内容
    接下来就可以直接在LearnSwift.swift中写swift代码啦 ~ 随便声明一个类,打些log:

    我的LearnSwift.swift文件内容

    编译直接通过,这就是在swift中使用oc类和方法了,一切顺利!在oc中使用swift,我在AppDelegate.m中使用刚才创建的swift类,那么先要引用swift头文件,即#import "LearnSwift-Swift.h",然后在这个.m文件中就可以任意使用swift创建的类和方法了:
    LearnSwift *learnSwift = [[LearnSwift alloc] init];[learnSwift logsth:@"code from oc"];
    编译运行直接过! 输出:
    this is a log from swift : code from oc理解下#import "LearnSwift-Swift.h"
    其实是项目名-Swift.h,这也是Xcode自动生成的,根据你写的所有swift代码,生成一个oc的.h文件,进行类和方法的声明,这样在oc里引用这个头文件后,就相当于引用了所有swift声明,可以直接使用了。


    展开全文
  • 虽然网上关于swiftoc混合编程的教程比较多,但是大多是基于 swift项目的,所以对咱们 OCer的参考价值有一定折扣. 现在swift虽然仍然存在很多缺陷,但是鉴于苹果的强势,是时候在项目把简单的功能交给swift了,给...
     对于已经工作的开发者,并不适合也没有条件从一个全新的swift项目开始,进行开发. 虽然网上关于swift和oc混合编程的教程比较多,但是大多是基于 swift项目的,所以对咱们 OCer的参考价值有一定折扣.
    • 现在swift虽然仍然存在很多缺陷,但是鉴于苹果的强势,是时候在项目中把简单的功能交给swift了,给自己,给项目,给swift一个缓冲区,都是极好的.

      说了这么多,开始上代码.

      现在的背景是: 已经有一个oc项目了,我想要加入 swfit,并且实现 oc调用 swift ,swift调用oc .

      1.新建一个swift文件

      2.接下来会询问你是否建立桥接文件,点击是 ,那么我后面的就是多余的了,所以选择取消,我们手动建立桥接文件

      3.手动建立桥接文件:新建头文件

      关于命名: 有经验的人都知道,这个头文件是项目公用的,同时如果自动创建,文件名也是 :

      项目名-Bridging-Header.h

      但是因为我现在的项目名是中文,所以我自己命名了一下.

       

      4. 配置头文件

      在build setting里面搜索 swift ,根据实际情况进行配置:

      注意:是相对于工程文件所在的相对路径.从 Finder里面看,不要让项目中得group扰乱你的判断

      5.在头文件中引入需要的 oc头文件,这里我就用 UIKit了

       

      6.编写代码

       

      可以看到,我们可以使用UIKit的类了

      注意:关于自定义类,希望有个好的命名规范,那么在混合编程中,你将受益无穷

      7.oc调用swift

      现在因为测试我想把窗口的根控制器设置为我的swift的那个.

      因为swift没有头文件,所以不好办了...

      其实,系统默认给我们生成了头文件(需要我们的swift类是NSObject的直接或者间接子类),我们只要引入

      项目名-Swift.h

      没办法了,我的项目名是中文...

      引入:

      8.使用 swift的类

      9.运行

      一切正常 (好丑,不要吐槽)

       


    展开全文
  • 今天研究了一下如何在OC项目使用swift文件,即OC和swift的混编问题,发现在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开发,这绝对是苹果的未来啊!

    展开全文
  • 有时候 ,我们会涉及到双向混合编程,特别是OCswift的互相引用。...2、将需要引用的oc文件 .h头文件 添加到桥接类。   如下: 然后在swift调用处,直接就可以使用了。   oc调用swift

    有时候 ,我们会涉及到双向混合编程,特别是OC和swift的互相引用。

     

    swift调用oc的方法:

    1、桥接文件,一般是swift工程,在创建一个oc文件时,系统自动添加(不用改名,直接默认即可)

    2、将需要引用的oc文件 .h头文件 添加到桥接类中。

     

    如下:

    然后在swift调用处,直接就可以使用了。

     

    oc调用swift的方法:

    1、首先设置一下Packing

    进入TARGETS ->Build Settings -> Packaging 中

    设置Defines Module为YES

    设置 Product Module Name (这个也可以不设置,直接使用默认就行)

    如图:

     

     2、设置完之后,在需要引用的oc文件头部  import一下,格式为: #import "工程名-Swift.h"

          比如:#import "OrderSystem-Swift.h"

     

    然后就可以使用swift文件了

     

    对了,本文是基于swift创建的工程,两种情况分别对应正常的 swift引用oc文件,以及在oc文件内回头引用swift文件。

    如果是基于oc创建的工程,暂未测试。

    展开全文
  • 一、是直接将OC文件拉到Swift的工程,然后Xcode会自动创建桥接头文件,这种就比较省事了,Xcode给你自动创建。 二、就是Xcode没有提示,需要自己创建桥接文件,步骤如下 1.首先去添加一个桥接的OC头文件,还有...

          最近使用swift的时候引用了OC文件,就给大家说一下我的个人经验,以供大家参考。

    一、是直接将OC文件拉到Swift的工程中,然后Xcode会自动创建桥接头文件,这种就比较省事了,Xcode给你自动创建。

    二、就是Xcode没有提示,需要自己创建桥接文件,步骤如下

    1.首先去添加一个桥接的OC头文件,还有就是大家起名字的时候,最好取成xxx_Bridge_Header这种格式的,因为如果是Xcode自己创建的话就是ssss_Bridge_Header,不过这个无所谓,只要好识别就行。

     

     

     

    2.然后找到Build Settings,搜索swift就会出来下面的东西,将Objective-C Bridging Header的内容修改成这种格式  工程名/桥接文件名,这是表明头文件的引用路径,如图所示

     

    3.现在桥接文件就完成了,只需将需要的头文件放到桥接文件中即可,我是因为要用数据库,引用了#import"sqlite3.h”如图所示

    展开全文
  • Swift工程引用OC文件

    2017-09-28 16:15:01
    一、是直接将OC文件拉到Swift的工程,然后Xcode会自动创建桥接头文件,这种就比较省事了,Xcode给你自动创建。 二、就是Xcode没有提示,需要自己创建桥接文件,步骤如下 1.首先去添加一个桥接的OC头文件,还有...
  • OCswift相互调用

    2017-04-26 11:39:33
     在OC项目创建一个swift文件的时候,Xcode 会提示 需要创建一个桥接文件,点确定创建桥接文件,Xcode会自动创建一个桥接文件 名字:工程名-Bridging-Header.h 这个桥接文件是 swift 调
  • 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, ...
  • 原有的项目都是使用OC写的,既然要在原有项目引入swift文件首先就要实现OC和swift的混编设置。 混编设置: 在OC项目创建一个swift文件的时候首先Xcode会弹出一个提示框: 这时我们要选择“Create ...
  • OC的项目,项目包含多个Target,用于实现环境分离。 目标:用Swift4.0版本版本进行普通混编开发(此外还有开发Framework混编、引用外部Framework和宿主App混编)。 普通混编说明 Swift访问OC OC访问...
  • swift中使用OC的方法;在OC中调用swift方法
  • oc中嵌入swift代码

    2017-02-25 18:00:30
    oc中想要嵌入swift代码,怎么办呢?也很好办。下边先讲讲思路: 在编译时oc会把swift的头文件统一放入一个文件进行编译的。 在oc中使用swift代码,只需要加入一个头文件即可。这个头文件是这么写的:#import <项目...
  • 在目录创建OC相关文件 // // SumNumbers.h // Dome2test // // Created by 郭文亮 on 2018/11/23. // Copyright © 2018年 finalliang. All rights reserved. // #import &lt;Foundation/Foundation....
  • 错误信息: dyld: Library not loaded: @rpath/libswiftCore.dylib  Referenced from: /private/var/mobile/Containers/Bundle/Application/1348BA9E-21D9-4A31-A03A-B3C801EF6D98/UcanService.app/...
  • 选择swift文件,名字自己定义喽。创建的时候,Xcode 会自动询问你,是否要创建桥接文件,点击创建,就会出来一个.h 文件,名字是这个格式的 :项目名称-Briding-Header.h 2. 这个时候出现了2个文件。 一个你创建的...
  • iOS OC项目调用Swift

    2017-03-17 13:51:27
    网上有很多关于OC项目使用Swift类的方法,但是亲自试了之后,发现不够详细,多次尝试后,终于找出详细的方法。 现把方法和遇到的问题,记录下来,方便其他同仁借鉴.
  • SwiftOC之桥接文件

    2016-03-25 10:26:48
    简介在使用Swift编程时,往往我们会用到OC文件,需要使用其内的方法来满足我们的需求,所以我们就要使用swiftoc的桥接文件,来引入oc中的头文件,至此来调用oc中的方法,满足我们在Swift编程下的需求.具体步骤 1.选中...
1 2 3 4 5 ... 20
收藏数 4,787
精华内容 1,914