• 问题描述:在swift项目中的桥接文件中 #import导入然而在编译的时候却提示 该文件Not Found解决办法: 中添加一项: 保存并重新编译就可以找到了

    问题描述:在swift项目中的桥接文件中
    这里写图片描述

    #import<xxxx.h>导入

    然而在编译的时候却提示 该文件Not Found

    解决办法:
    这里写图片描述
    中添加一项:
    这里写图片描述
    保存并重新编译就可以找到了

    展开全文
  • 或者导入OC文件 会提示创建一个桥接文件 下面就是那个桥接文件内容 // // Use this file to import your target's public headers that you would like to expose to Swift. // //包含所有Swi

    创建swift项目调用oc代码

    swift里创建oc 

    或者导入OC文件

    会提示创建一个桥接文件

    下面就是那个桥接文件内容

    //

    //  Use this file to import your target's public headers that you would like to expose to Swift.

    //

    //包含所有Swift 调用oc的类

    //需要调用的类头文件  放在这里面


    #import "MyImageView.h"


    之后 直接在Swift使用就可以了

    But , 如果没有提示建立桥接文件,也可以自己建立,命名"工程名-Bridging-Header.h"(其实这个可以随意了,不过这样命名比较明显)

    ⚠️注意:需要在Build Settings里面设置,确保Swift Compiler Code Generation->Objective-C Bridging Header下的头文件的路径是对的


    创建OC项目调用Swift代码

    这个比上面那个麻烦点(其实也不麻烦,就是偶尔出问题)
    在你要加入Swift的OC文件中,
    导入 项目名-swift.h

    是项目名哦,不是swift的类名,不管Swift有多少个文件,你就只用导入项目名-swift.h

    要不就去build settings ->packing->Product Module Name 中设置模块名(不建议自己改,好吧,我也不会改,找这个只是为了看当前的项目名)
    以上归纳为一个表

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

    这个表是借鉴的,还不错

    不过混编不适合大面积,真的会出很多奇怪的问题,毕竟不是一种语言


    展开全文
  • 今天研究了一下如何在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开发,这绝对是苹果的未来啊!

    展开全文
  • 最近OC项目中有用到第三方swift插件图表,charts,在手动导入过程中遇到一些问题,记录一下,便于以后方便查找 1:新建工程 2:github下载charts文件 3:然后将解压后的文件夹整个拖到自己的工程文件夹下(很多教程只让...

    最近OC项目中有用到第三方swift插件图表,charts,在手动导入过程中遇到一些问题,记录一下,便于以后方便查找

    1:新建工程

    2:github下载charts文件

    3:然后将解压后的文件夹整个拖到自己的工程文件夹下(很多教程只让拖xcodeproj文件,但我拖了不好使),如下图:

    4:然后将刚才拖进去的Charts-master文件下的Charts.xcodeproj   add Files to 项目中,如下图

    5:添加charts框架,如下图

    6:创建与swift的桥接文件,会生成两个文件,如下图

    7:在ChartsDemo(你的工程文件名)-Bridging-Header.h文件中添加#import <Charts/Charts.h>

    8:然后在需要使用的地方导入这俩头文件就好:

    #import "ChartsDemo-Bridging-Header.h"  

    #import "ChartsDemo-swift.h"

     

    #import "ViewController.h"
    #import "ImportChart-Bridging-Header.h"
    #import "importChart-swift.h"
    
    @interface ViewController ()
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view, typically from a nib.
        //例如:因为没有赋值,所以会出现没有数据的折线图
        LineChartView *lView = [[LineChartView alloc]initWithFrame:CGRectMake(20, 100, 80, 70)];
        lView.backgroundColor = [UIColor cyanColor];
        [self.view addSubview:lView];
    }
    
    - (void)didReceiveMemoryWarning {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
    
    @end

     

     

     

     

     

     

    展开全文
  • 上篇讲了Swift中使用OCSwift中使用OC,这篇讲下OC中使用Swift类。 在OC中需要用到Swift代码的文件中引入#import “XXX-Swift.h”,XXX是你的工程名称。 特别注意 1、被使用的Swift的类必须是至少继承自NSObject...

    Swift中引用OC看这篇
    在OC中需要用到Swift代码的文件中引入#import “XXX-Swift.h”,XXX是你的工程名称。

    特别注意
    1、被使用的Swift的类必须是至少继承自NSObject的,不然OC识别不了这个类。
    2、Swift中的属性和方法,要加上@objc标识,不然识别不了。

    代码如下,Swift中定义了一个类,这个类有一个类属性和一个类方法。

    class UUUU:NSObject {
        @objc static var yyy:String?
        @objc static func test()->(){
            print("XXXX")
        }
    }

    在OC需要用到的地方先引入#import “XXX-Swift.h”,然后就能用了

        UUUU *u  =[UUUU new];
        NSLog(@"%@" , UUUU.yyy);
        [UUUU test];

    Swift中使用类属性和类方法代替宏定义

    另外,在Swift的类中,可以使用只读的类属性和类方法来代替OC中的宏定义,这样定义的宏在OC中直接用,省略了在oc中再定义一次的麻烦。代码如下

    class UUUU:NSObject {
        //只读的类属性
        @objc static var name:String{
            return "jim"
        }
        //类方法
        @objc static func RGBColor(r:Float , g:Float , b:Float) -> UIColor {
            return UIColor.init(red: (CGFloat(r/255.0)), green: (CGFloat(r/255.0)), blue: (CGFloat(r/255.0)), alpha: 1.0)
        }
    }

    另一种Swift代替宏定义的方法是使用全局变量和全局函数来定义,Swift中使用全局变量和函数代替宏

    展开全文
  • swift导入oc第三方库

    2019-05-05 15:31:39
    swift导入oc第三方库 前言 对于ios开发而言,目前很多第三方库或者demo还是以oc为主,swift相关的资料很少,这篇文章就结合博主的开发实例对在swift工程中导入并使用oc版本的第三方库进行阐述。 正文 1.编写oc桥接头...
  • 首先就是在 targets->... 然后创建swift文件时会生成"文件名-Bridging-Header.h"这样一个桥接文件 怎样使用cocoapods就不多说了 最重要的就是在Podfile里面加上use_frameworks! 因为swift使用的是框架而不是静态库
  • 由于本人在开发过程中主要用的是OC语言,所以pod的都是OC库,Podfile里又没加use_frameworks!所以一直都是.a类型的。后来因为需求需要用到一个只有swift版本的库,就使用use_frameworks!将所有.a库变成了.framework...
  • #### 1、OC工程项目导入Swift 版本的framework静态库后,模拟器和真机编译都通过,但是模拟器环境下无法调用库里面的类,真机环境可以 #### 2、如果是Swift项目工程引入这个Swift静态库没有任何问题 1、 真机可以...
  • 1、我们先创建一个OC的项目MyFirstOCUseSwiftDemo 2、我们点击Target看到右边选择Build Settings,把Defines Module改为YES, 3、我们回到工程目录下,New File一个Swift File,起名为MyFristSwift,此时会...
  • OC项目引入Swift方法 ...1.在已有的OC工程中新建一个Swift文件,命名为Test.swift,会弹出提示,选择Create Bridging Header建立桥接文件,系统会建立“工程名-Bridging-Header.h”
  • 有时候 ,我们会涉及到双向混合编程,特别是OCswift的互相引用。   swift调用oc的方法: 1、桥接文件,一般是swift工程,在创建一个oc文件时,系统自动添加(不用改名,直接默认即可) 2、将需要引用...
  • ...在OC中使用Swift 1.首先创建一个工程名字就叫做CHWTest1 2.在工程的Build Setting中把Defines Module改为YES,如图 3.把Product Name设为工程的名字,如图 4
  • OC导入Swift工程演示

    2014-06-09 14:03:48
    1、首先建一个Swift工程 2、新建一个OC类 3、这时,会弹出一个对话框,选“是” 4、会自动创建一个桥接头文件(OcToSwift-Bridging-Header.h) 6、在这个头文件里引入OC类的...
  • 环境介绍: mac OS sierra 10.12.6 Xcode9(Version 9.0 (9A235)) OC的项目,项目中包含多个Target,用于实现环境分离。 目标:用Swift4.0版本版本进行普通混编开发... Swift访问OC OC访问Swift ...
  • 在项目中右键添加一个swift文件,我添加的LearnSwift.swift添加后Xcode弹出‘是否配置oc桥接头文件’的提示,点确认,系统自动生成一个项目名-Bridging-Header.h的文件,我的是LearnSwift-Bridging-Header.h。...
  • https://www.jianshu.com/p/429a2dfb1040 这个链接地址解决办法有效,供参考,谢谢
  • 虽然网上关于swiftoc混合编程的教程比较多,但是大多是基于 swift项目的,所以对咱们 OCer的参考价值有一定折扣. 现在swift虽然仍然存在很多缺陷,但是鉴于苹果的强势,是时候在项目中把简单的功能交给swift了,给...
  • 作为ios开发的新语言,相对比较oc 资源还是比较欠缺,有时候开发中,我们需要引入第三方库就不得不引入oc版的第三方库,然后苹果公司也给集成了这样的快捷方式。导入第三方的方法有:1、CocoaPods 2、手动将第三方的...
  • 之前在开发是遇到了在OC文件中调用Swift对象的变量调用不到的问题,这里总结一下: 1.首先我们一个Swift项目TestProject。 2.建立一个Swift文件继承自NSObject名字为SwiftFile.swift,并声明一个字符串变量...
1 2 3 4 5 ... 20
收藏数 2,285
精华内容 914