• 在做swift与OC混编的时候,我返现一个很诡异的问题:当我写了一个新的swift文件过后,打开-swift.h这个文件观察,你会发现,并没有及时更新相应的头文件。这说明如果此时你选择用OC调用这段代码会导致你的项目报错...
    在做swift与OC混编的时候,我返现一个很诡异的问题:当我写了一个新的swift文件过后,打开-swift.h这个文件观察,你会发现,并没有及时更新相应的头文件。这说明如果此时你选择用OC调用这段代码会导致你的项目报错……
    
    这个问题很麻烦,但是解决起来很容易,就是先注释掉所有OC中关于swift文件的代码,然后编译项目即可更新-swift.h文件。
    这个问题的原因,貌似就是只有编译过后,-swift.h就会更新。但是在我们的编写习惯中,并不会先实现swift文件之后立即编译,这也就导致了一些小问题!如果大家遇到这类问题的话,可以参考参考哦!
    展开全文
  • 一般我们在OC 与Swift混编的工程中,如果在.m文件中需要使用Swift的类的话,直接在相关的类前加上 @objcMembers 注解,然后在.m文件中导入 “Project Name-Swift.h” 头文件 就好了 但是如果在要在.h 中 必须使用...

    一般我们在OC 与Swift混编的工程中,如果在.m文件中需要使用Swift的类的话,直接在相关的类前加上 @objcMembers 注解,然后在.m文件中导入 “Project Name-Swift.h” 头文件 就好了

    但是如果在要在.h 中 必须使用swift 的类,那就在.h文件中前置声明一下swift的类名,@class className; ,然后在.m 文件中 再导入 “Project Name-Swift.h” 头文件

    展开全文
  • 关于OC与Swift混编过程中 “xxxx-Swift.h”为找到的问题 在对OC与Swift混编中,加了3个target: 但是在混编过程中,某两个Target 提示找不到 “xxxxx-Swift.h” 在网上找了很多资料,说“xxxx-Swift.h”名字必须与...

    关于OC与Swift混编过程中 “xxxx-Swift.h”未找到的问题

    在对OC与Swift混编中,加了3个target:
    在这里插入图片描述
    但是在混编过程中,某两个Target 提示找不到 “xxxxx-Swift.h”
    在网上找了很多资料,说“xxxx-Swift.h”名字必须与工程名一样,于是乎加了3个预编译宏,区分:

    #if TPELD_Enterprise
    #import TPELD_Enterprise-Swift.h"
    #elif TPELD_Prerelease
    #import "TPELD_Prerelease-Swift.h"
    #else 
    #import "TPELD_Company-Swift.h"
    #endif
    

    这几个宏定义,是在build Setting 里面,如下图:
    在这里插入图片描述
    只有在切换到TPELD_Enterprise后才能正常编译,否则,都提示找不到-Swift.h文件

    找资料找了很久,总结出两个问题,在此记录一下:

    1. 在Swift里,貌似这个预编译if else指令不太管用,都不能进入到 elif判断
    2. 在排查问题后发现生成的-Swift.h文件名不对,如下图
      在这里插入图片描述
      解决方法
      分别在三个Target中,找到 Objective-C Generated Interface Header Name,统一都修改为TPELD_Company-Swift.h,然后去掉上面一堆繁琐的预编译判断,只留下#import TPELD_Company-Swift.h,也就是说在每一个Target中,都去强制生成TPELD_Company-Swift.h文件,不以工程名判断,这样就能顺利的通过编译,而且也可以区分不同的Target了。
    展开全文
  • Oc中导入Swift,”工程名-Swift.h文件找不到。 已知问题有两个 A.设置Product Module Name 为当前工程名。注意:工程名字不要含有特殊字符(例如 +)**Target-> Bulid Settings ->输入packa 设置Defines Module...

    Oc中导入Swift,”工程名-Swift.h” 文件找不到。
    已知问题有两个
    A.设置Product Module Name 为当前工程名。注意:工程名字不要含有特殊字符(例如 +)

    **Target-> Bulid Settings ->输入packa 设置Defines ModuleYes** 

    B. 如果未设置,或者更改了工程名字了,报错 找不到文件。尝试用以下命令找到”工程名-Swift.h” 文件,进行比对。

     cd ~/Library/Developer/Xcode/DerivedData
     find * -iname '*Swift.h'
    展开全文
  • 很多小伙伴在xcode8 中升级swift3.0编译工程时会出现 #import “项目名-Swift.h”失效问题 本人总结了一下,请看一下步骤: 1、Target-> Bulid Settings ->输入packa 设置Defines Module 为Yes 2、设置Product ...

    很多小伙伴在xcode8 中升级swift3.0编译工程时会出现 #import “项目名-Swift.h”失效问题
    本人总结了一下,请看一下步骤:
    1、Target-> Bulid Settings ->输入packa 设置Defines Module 为Yes
    这里写图片描述

    2、设置Product Module Name 为当前工程名

    *注意 如果当前的项目名中 有数字和中文还有‘-’ 会导入不成功
    如果当前使用有数字和中文还有‘-’ 可以 修改product name*

    这里写图片描述

    3、设置Product Name后面要用。然后 创建一个新的文件Swift.swift

    这里写图片描述

    这里写图片描述
    4、点击确认后会选择保存路径,点击Create Bridging Header,出现如下界面:

    这里写图片描述

    之后就可以删除之前创建的新文件Swift.swift

    5、这样就会生成bridging header 文件

    这里写图片描述

    6、然后自己创建一个以”项目名-Swift.h”文件

    这里写图片描述

    这里写图片描述

    7、最后,你按住cmd点击”项目名”-Swift.h这个头文件,就可以看到里面你想要内容了,如图所示
    这里写图片描述

    这里写图片描述

    接下来你可以删除你所创建的 “项目名”-Swift.h 文件了,在这里就会生成你所调用的swift文件了

    展开全文
  • 最近使用swift的时候引用了OC文件,就给大家说一下我的个人经验,以供大家参考。 一、是直接将OC文件拉到Swift的工程中,然后Xcode会自动创建桥接头文件,这种就比较省事了,Xcode给你自动创建。 二、就是Xcode...
  • OCswift混编(桥接)

    2018-10-10 14:49:59
    这里主要是swift 调用OC方法的时候引入OC文件.h 所使用的   第一次在OC工程中创建swift文件生成的桥 头文件, 此时路径默认已生成,不用管   如果第一次没有创建,后期需要使用,那¥那么直接创建一个 XXX ...
  • 在项目中右键添加一个swift文件,我添加的LearnSwift.swift添加后Xcode弹出‘是否配置oc桥接头文件’的提示,点确认,系统自动生成一个项目名-Bridging-Header.h文件,我的是LearnSwift-Bridging-Header.h。...
  • 检查配置文件,build setting 自动生成的$(SWIFT_MODULE_NAME)-Swift.h 文件大小写没有改动,是正确的 在Terminal 中查找项目目录中是否存在-Swift.h 文件使用命令 find ./DerivedData -name “*Swift.h文件存在 ...
  • 有时候 ,我们会涉及到双向混合编程,特别是OC和swift的互相引用。...2、将需要引用的oc文件 .h头文件 添加到桥接类中。   如下: 然后在swift调用处,直接就可以使用了。   oc调用swift
  • swift导入oc第三方库

    2019-05-05 15:31:39
    swift导入oc第三方库 前言 对于ios开发而言,目前很多第三方库或者demo还是以oc为主,swift相关的资料很少,这篇文章就结合博主的开发实例对在swift工程中导入并使用oc版本的第三方库进行阐述。 正文 1.编写oc桥接头...
  • 2016.09.13 11:53*字数 266阅读 1935评论 1喜欢 1 ...今天碰到个神坑,本人项目是OC项目...但是,在替代的已开始就出现问题了:新建swift文件,然后提示创建bridging-Hearder文件,然后swift可以使用OC代码了.这些都...
  • 最近几天,更新了xcode7,由于工程是swift和OC混编,所以工程会自动生成一个project-swift.h文件。前段时间一直用xcode6.4,一直没问题,更新到7之后,问题来了:生成的文件出错。 出错行报错如下: /Users/lindow/...
  • Swift引入Header.h文件

    2019-06-13 05:19:44
    为什么80%的码农都做不了架构师?>>> ...
  • OCSwift混编

    2018-07-19 11:31:59
    首先要说明的是,混编时,比如工程原先用oc,你突然创建了一个swift文件,那么xcode会弹出一个是否创建侨界文件的提示,点击是(不点击也行,在系统...xcode会隐形生成类似类似 “工程名-Swift.h”的文件,直接#imp...
  • OC和Swift之间的互调很简单,iOS8以后官方给出了这两种语言之间的桥接方案,简单说就是在Swift工程中,通过提示创建的Bridging头文件可以将OC文件Swift文件衔接在一起,从而可以在OC文件中引用Swift类,或者在...
  • swift中使用oc文件

    2016-03-18 09:30:51
    直接将oc文件拖到项目中,此时Xcode会询问是否生成"{product-mudule-name}-Bridging-Header.h"文件,点击生成后,oc文件会添加到项目中,且会多一个*-Bridging-Header.h文件,在该文件中#import对应oc文件的头文件就...
  • 今天研究了一下如何在OC项目中使用swift文件,即OCswift的混编问题,发现在OC中要使用swift文件也是蛮简单的,实践过程列如下: 1)首先随便创建了一个OC项目,就叫 DetialViewDemo 2)因为Swift的代码默认是...
  • ...在OC中使用Swift 1.首先创建一个工程名字就叫做CHWTest1 2.在工程的Build Setting中把Defines Module改为YES,如图 3.把Product Name设为工程的名字,如图 4
  • Swift工程中引用OC文件

    2017-09-28 16:15:01
    最近使用swift的时候引用了OC文件,就给大家说一下我的个人经验,以供大家参考。 一、是直接将OC文件拉到Swift的工程中,然后Xcode会自动创建桥接头文件,这种就比较省事了,Xcode给你自动创建。 二、就是Xcode...
1 2 3 4 5 ... 20
收藏数 3,863
精华内容 1,545