精华内容
参与话题
问答
  • OCSwift混编

    2016-08-02 15:51:00
    在混合项目中Swift代码默认使用module管理,这时想要OC引用Swift需要把Swift代码作为module暴露给整个项目,修改Build Settings如下: 然后创建一个ProjectName.swift文件,在OC文件中引入该文件就可以随意...
        

    OC引用Swift

    在混合项目中Swift代码默认使用module管理,这时想要OC引用Swift需要把Swift代码作为module暴露给整个项目,修改Build Settings如下:


    1480065-da206521f0347aff.png

    然后创建一个ProjectName.swift文件,在OC文件中引入该文件就可以随意引用Swift代码了;

    Swift引用OC

    同理,Swift引用OC是通过ProjectName-Bridging-Header将OC代码暴露给整个项目,这里需要考虑两种情况如下
    1.在Swift项目中创建OC文件会自动生成ProjectName-Bridging-Header文件,在该桥接文件里引入OC头文件就可以引用OC代码了,同时系统帮我们设置好了文件路径;

    2.如果最初创建OC文件时没有创建桥接文件,此后创建OC文件不会提示创建桥接文件,这时需要自己创建桥接文件ProjectName-Bridging-Header如下


    1480065-e835e7ad22de0583.png

    手动创建桥接文件后要在Build Settings中设置路径,搜索bridging找到Swift Compiler-General -> Objective-C Bridging Header,然后把桥接文件拖进来就大功告成了。


    1480065-d0757040ef39c92f.png
    展开全文
  • 为什么80%的码农都做不了架构师?>>> ...

    创建一个OC和Swift混合开发的工程,所做的工作如下:

    1.在Swift中引用Object-C文件:

    在Swfit代码中添加OC文件的时候,需要依赖一个bridging header文件,Xcode会在你新建一个OC文件的时候自动帮你创建(项目是使用Swift语言创建的),点击yes,Xocde就会在新建OC文件的同时帮我们新建一个 xxx-Bridging-Header.h 文件,xxx是你的项目名称(Product Module),然后我们得编辑这个文件才能让Swfit代码调用OC代码。

    190357_XICZ_2364452.png

    在项目的xxx-Bridging-Header.h文件里,添加需要在Swift里调用的OC文件,然后就可以在Swfit代码中调用了。

    在项目的 Build Settings 选项里,要确保Swift Compiler选项里有这个Bridging Header文件的设置,路径必须指向文件本身,而不是目录。

    190612_iONv_2364452.jpeg

    2.在Object-C中引用Swift文件:

    当在OC里调用Swift中的代码时,需要依赖一个xcode自动生成的头文件,这个自动生成的头文件定义了项目中所有的Swift文件,这个头文件的命名为 “xxx-Swift.h” ,xxx为项目的名称,此外就不需要再做任何事情了,你只需要在OC代码里导入这么一个文件,就可以跟没事一样拿任意一个Swift中的代码用了。

    以上归纳为一个表

      调用Swift代码 调用OC代码
    Swift代码 无需声明 #import "ProductModuleName-Swift.h”
    OC代码 依赖bridging header文件 #import "Header.h”
     


     

    转载于:https://my.oschina.net/Atoman/blog/780758

    展开全文
  • OCSwift混合使用

    千次阅读 2017-07-10 11:16:59
    随着swift趋向于稳定,越来越多的公司启动的新项目也想使用swift过把瘾,使用swift的好处与弊端不再赘述。目前版本是swift3.0,而且Xcode9beta版中已经更新到swift4.0。使用swift开发是大趋势,...OC引用Swift第三方库

    随着swift趋向于稳定,越来越多的公司启动的新项目也想使用swift过把瘾,使用swift的好处与弊端不再赘述。目前版本是swift3.0,而且Xcode9beta版中已经更新到swift4.0。使用swift开发是大趋势,这里从以下几个方面看一下如何进行简单的配置。

    • OC中引用Swift文件
    • Swift中引用OC文件,以及第三方库
    • Xcode8以后编译swift2.x
    • OC引用Swift第三方库

    一、OC中如何引用Swift文件:
    首先先来创建一个object-c语言的项目,然后直接一个swift类,这时会弹出如下提示:
    配置桥接头文件
    先选择Do not Create,稍后会提到,系统会自动创建一个格式:xxx项目名-Swift.h的头文件,不显示但是可以直接引用,直接引用,这时发现报错了。
    报错了
    这是为什么呢?虽然一般情况下是直接引用xxx项目名-Swift.h,真正需要引用的是Product Moudle Name对应的文件名:
    模块名配置
    也可在此基础上搜索swift,对应的文件名正是想要的文件名,为什么上面还要提搜索pack找Product Moudle Name直接搜swift不就好了吗?因为这个名字是拼出来的:Product Moudle Name-Swift.h,可以去pack里面删除Product Moudle Name对应的内容,再回来搜swift看一下就明白了。
    搜索swift
    项目在创建的时候名称有的时候可能有歧义系统自动帮我们修改。swift在OC项目中是作为Moudle来使用的,名称继承自PROJECT下的Product Moudle Name,导入时报错请自行检查是否匹配。
    目前为止导入头文件成功了,调用一下SwiftTest类中的log方法。
    方法配置
    却发现一直报未定义该类的错误:
    未定义报错
    点击生成的项目名-Swift.h的头文件里面却发现没有关于Swift声明:
    未声明该类
    后来经过查找发现是因为没有创建桥接文件导致的,手动来创建一下桥接文件,命名规则:项目名-Bridging-Header。
    创建桥接文件
    到项目里手动配置文件路径:
    配置方法
    配置完成后clean然后build点击项目名-Swift.h进入就可以发现定义swift类的声明,Command + R 运行成功。
    二、Swift中引用OC文件,以及第三方库
    swift引用OC文件比较简单:
    1)创建桥接文件(参考上面步骤)
    2)把需要用到类或者第三方SD、framework头文件引入
    3)直接在swift文件中使用
    由于比较简单不在赘述,稍后会提到注意事项。
    三、Xcode8以后编译swift2.x以及pod引用的swift框架
    Xcode8以后swift的currentVersion改为3.0,如果是swift2.x项目打开往往会有这样的提示:
    转换提示
    如果你想转换的直接点击convert,但是要注意备份小心一万点爆红,如果点击了later之后又想转换了可以进行如下操作:
    手动转换
    如果想要继续编译swift2.x需要设置版本:
    设置版本
    如果没有使用第三方框架那么现在就可以build了,而且是成功的,但是如果使用了第三方的framework,那么每个framework都需要设置一次,如下:
    设置pod的版本
    这里几点需要注意的:
    1)pod里面的framework的版本必须与taget里面的一致否则编译失败。
    2)必须与最低版本一致有一个framework使用了swift2.x其他都必须设置为YES
    3)任何时候点击convertToCurrentVersion都是转换到最新版本也就是当前的swift3.0,即使你设置了使用以前版本再次进行转换也是转换到swift3.0不会转换到以前版本。
    4)每次pod以后之前的配置都会重置,需要从新设置版本。但是可以在Podfile里面加入如下代码,将会对所有提交的framework进行设置:

    post_install do |installer|
      installer.pods_project.targets.each do |target|
      target.build_configurations.each do |config|
      config.build_settings['SWIFT_VERSION'] = '3.0'
      end
     end
    end

    如下图:
    pod设置
    四、OC引用Swift的framework:
    配置方法跟pod配置版本号方法相同,设置完版本号后在需要的文件中引用:#import <framework/framework-Swift.h>】也可以通过引入模块的方式:@import framework;这两种方式效果相同。
    注意:很多swift三方库,并不支持OC使用,而绝大部分OC库支持swift,是向下兼容的,OC与Swift混编的注意事项,稍后补充。
    ps:文章有点啰嗦,本人系新手,主要是记录给自己看。

    展开全文
  • 1. swift调用oc,在swift项目内新建或者拖入oc文件,Xcode会提示添加header引用,点击允许即可,手动档寻百度 将需要暴露给swift调用的类导入该header.h中,即可在swift类中调用,swift一个项目就是一个命名空间,...

     

    1. swift调用oc,在swift项目内新建或者拖入oc文件,Xcode会提示添加header引用,点击允许即可,手动档寻百度

    将需要暴露给swift调用的类导入该header.h中,即可在swift类中调用,swift一个项目就是一个命名空间,不需要引入oc头文件

     

    2.oc调用swift,百度很久发现都要修改配置,亲测然并卵。

    oc调用swift方式,同上swift有命名空间概念,因此在oc需要引用swift的类中,导入“xxx-Swift.h”头文件即可,xxx就是你的项目名称。可能没有编译提示

    到此还不能调用,需要在被调用的swift方法或属性前添加 @objc 关键字,暴露给oc调用,此时该方法在oc才能得到编译器通过

     

    记录一下,swift 小坑整理

    转载于:https://www.cnblogs.com/pruple/p/8652051.html

    展开全文
  • 创建swift工程后,如果后面... 引用swift 文件 什么都不需要操作,在所有的swift 文件中,都是可以相互使用的 2> 引用oc 文件 AppName-Bridging-Header.h文件中把要引用的oc头文件导入,然后在所有的 swift 文...
  • oc_swift.zip

    2020-11-25 12:40:27
    swiftoc混编demo,通过此demo可以知道ocswift相互调用和引用 具体博客地址https://blog.csdn.net/u013983033/article/details/110121212
  • 最近调试Swift时需要用到引用计数器,找了半天,在此记录//swift中方法 let count = CFGetRetainCount(self)//swift获取方法 //OC方法如下 //第一种方式,KVC [obj valueForKey:@"retainCount"]  //...
  • OCSwift混合编程引用Pods管理的模块 用Pods安装需要使用的模块后,打开.xcworkspace文件,然后按下图所示设置一下User Header Search Paths: swift中创建OC桥接文件 a. 自动创建桥接文件(仅限于swift工程...
  • OCSwift中循环引用的问题

    千次阅读 2015-12-20 15:33:22
    总结一下自己对OC中和Swift中循环引用的认识。 一.OC中的循环引用分为类中的循环引用和对象之间的循环引用。 1.类的循环引用 造成原因: 在两个类的.h文件中使用了#import "" 而造成两个类之间的循环引用 解决办法:在...
  • OC与swift混编在最上层项目中混编swift引用swiftswift引用OCOC引用swiftOC引用OC在Framework层混编swift引用swiftswift引用OCOC引用swiftOC引用OC上层项目引用Framework时混编swift引用swiftswift引用OCOC引用swift...
  • 问题:新建swift文件时,笔者的Xcode没有提示生成桥接文件,需要自己配置并手动创建桥接文件,最后在OC中成功引用swift写的类 项目说明:没有使用framework与pod 重要的配置及文件认识 Target–Building Setting...
  • swift项目中,OCswift文件相互调用

    千次阅读 2017-08-10 13:40:37
    有时候 ,我们会涉及到双向混合编程,特别是OCswift的互相引用。   swift调用oc的方法: 1、桥接文件,一般是swift工程,在创建一个oc文件时,系统自动添加(不用改名,直接默认即可) 2、将需要引用...
  • OCSwift混编小知识

    2020-04-09 17:32:19
    1:oc项目引用swift oc通过xxx-Swift.h调用swift。swift通过xxx-Bridging-Header.h调用oc。创建oc项目,xcode不会自动创建桥接文件。需要先创建xxx-Bridging-Header.h,才会生成xxx-swift.h文件。 2:swift项目...
  • swift项目中 OCswift相互调用

    千次阅读 2018-06-29 19:33:51
    2、将需要引用oc文件 .h头文件 添加到桥接类中。 具体方法可以参考我的这篇博客,里面进行了详细讲解 oc调用swift 1、首先设置一下Packing 进入TARGETS -&gt;Build Settings -&gt; Packaging 中 设....
  • OC 引用并调用Swift文件

    千次阅读 2019-07-24 14:09:36
    1、我们先创建一个OC的项目MyFirstOCUseSwiftDemo 2、我们点击Target看到右边选择Build Settings,把Defines Module改为YES, 3、我们回到工程目录下,New File一个Swift File,起名为MyFristSwift,此时会...
  • swiftOCSwift混编

    2017-08-13 16:46:00
    如果想在swift工程中添加OC代码,需要解决怎么引用OC代码的头文件问题。具体的解决办法就是:新建一个Header File文件里。 如下图所示,在新建的.h文件里面,添加OC代码的头文件 然后需要在项目部署里面配置该...
  • 【iOS沉思录】OCSwift语言互调

    千次阅读 2017-04-12 14:35:21
    OC和Swift之间的互调很简单,iOS8以后官方给出了这两种语言之间的桥接方案,简单说就是在Swift工程中,通过提示创建的Bridging头文件可以将OC文件和Swift文件衔接在一起,从而可以在OC文件中引用Swift类,或者在...
  • OCSwift进行互相调用

    2019-05-08 17:45:00
    2、将需要引用oc文件 .h头文件 添加到桥接类中。 如下: 然后在swift调用处,直接就可以使用了。 oc调用swift的方法: 1、首先设置一下Packing 进入TARGETS ->Build Settings -&g...
  • 有时候 ,我们会涉及到双向混合编程,特别是OCswift的互相引用swift调用oc的方法: 1、桥接文件,一般是swift工程,在创建一个oc文件时,系统自动添加(不用改名,直接默认即可) 2、将需要引用oc文件 ....
  • 最近在oc工程里要引用swiftMonkeypaws,需要使用oc调用swift技术,里面踩了很多坑,这里简单记录一下。 1、oc调用swift oc调用swift其实很简单,google一下就有很多的教程,可以参考文章1、2、3、4。总体上就是在要...
  • --------------------------------------------------------Begin----------------------------------------------------...oc引用swift 通过cocoaclass新建一个swift文件 finish->create,填好文件名 ,...
  • 有时候 ,我们会涉及到双向混合编程,特别是OCswift的互相引用swift调用oc的方法: 1、桥接文件,一般是swift工程,在创建一个oc文件时,系统自动添加(不用改名,直接默认即可) 2、将需要引用oc文件 .h...
  • OCSwift文件的混编

    2017-05-23 10:33:31
    1. OC调用Swift类;a. 在工程的 Build Settings 中把 defines module 设为 YES. b.引入swift头文件,格式“projectName-...Swift代码引用OC,需依靠 Objective-C bridging header 将相关文件暴露给Swift。在Objecti

空空如也

1 2 3 4 5 ... 13
收藏数 258
精华内容 103
关键字:

oc引用swift