精华内容
下载资源
问答
  • oc与swift混编,OC调用swift,swift调用OC

    1、oc工程调用swift-----自动创建桥接头文件

    创建一个oc工程:


    设置Product Module Name = 工程名



    创建一个swift文件:

    点击自动创建桥接头文件:



    设置Objective-C Bridging Header 如下图:



    至此,我们可以在oc中调用swift了

    测试代码:


    import Foundation
    
    class Student: NSObject {
        var name : String = "dzl"
        var age : Int = 22
    }

    在oc中引入头文件  "工程名-swift.h" 就可以使用swift中的类了

    注:这个头文件是不可见的

    #import "ViewController.h"
    
    #import "OCuseSwift1-swift.h"
    
    @interface ViewController ()
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view, typically from a nib.
        
        Student * s1 = [[Student alloc] init];
        NSLog(@"%@", s1.name);
    }
    
    - (void)didReceiveMemoryWarning {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
    
    @end

    输出:

    2015-11-13 10:01:32.250 OCuseSwift1[1040:20007] dzl

    此时swift也是可以引用OC的,只需将swift需要使用的oc类头文件在桥接头文件中引入即可,






    2、oc工程调用swift-----手动创建桥接头文件


    首先创建一个oc工程,与上面相同

    然后创建一个swift文件,但是不选择创建桥接头文件,如图:



    然后手动创建桥接头文件,就相当于创建一个普通的头文件一样,只是命名一定要严格按照规则:



    工程设置中指定桥接头文件:


    经测试,oc引用swift或者swift引用oc都是可以的,测试方法与上面相同,这里不再赘述。



    3、swift工程调用-----自动创建桥接头文件 和 手动创建桥接头文件,基本与上面操作一直,不再详述




    其实桥接头文件里面引入oc头文件,是为了swift可以访问oc文件,

    在oc中引入   工程名-swift.h   文件  是为了oc可以访问swift,但这个文件是不可见的,不过可以通过command+鼠标左键查看该文件



    展开全文
  • Swift调用OC和C

    2017-04-14 16:24:00
    Swift文件:main.swift import Foundation ...//Swift调用OC //拿到OC类 var funcClass = Root() funcClass.desc2() OC文件:Root.h #import <Foundation/Foundation.h> @interface Root : ...

    Swift文件:main.swift

    import Foundation
    
    //Swift调用C函数
    desc1()
    
    //Swift调用OC
    //拿到OC类
    var funcClass = Root()
    funcClass.desc2()
    

    OC文件:Root.h

    #import <Foundation/Foundation.h>
    
    @interface Root : NSObject
    
    -(void)desc2;
    
    @end

    Root.m

    #import "Root.h"
    
    @implementation Root
    
    //求和函数
    //1、定义函数
    int sum2(int a, int b)
    {
        return a+b;
    }
    
    -(void)desc2
    {
        //2、声明Block
        int (^p)(int, int);
        
        //3、函数指针指向函数
        //    p = sum2;
        p = ^(int a, int b) //把函数赋值给Block
        {
            return a+b;
        };
        
        //4、使用
        int result = p(10, 40);
        printf("OC方法输出result:%d\n", result);
    }
    

    C函数文件:

    Fun.c

    #include <stdio.h>
    
    //求和函数
    //1、声明函数
    int sum1(int a, int b)
    {
        return a+b;
    }
    
    void desc1()
    {
        //2、声明函数指针
        int (*p)(int, int);
        
        //3、函数指针指向函数
        p = sum1;
        
        //4、使用
        int result = p(10, 20);
        printf("C函数输出结果:%d\n", result);
    }

    桥接文件:project名称-Bridging-Header.h

    //这里面须要导入 桥接的C或OC的头文件
    
    //导入C函数
    void desc1();
    
    //导入OC头文件
    #import "Root.h"


    转载于:https://www.cnblogs.com/gavanwanggw/p/6709470.html

    展开全文
  • 2019独角兽企业重金招聘Python工程师标准>>> ...

    ![创建桥接文件]

    ![创建桥接文件]

    转载于:https://my.oschina.net/u/556624/blog/888925

    展开全文
  • iOS-Swift调用OC的Block

    千次阅读 2016-12-12 10:55:46
    iOS-Swift调用OC的Block MLSelect内有一个callBack的闭包是这么定义的 typedef void(^callBackBlock)(id obj); Oc的调用方法: MLSelectPhotoPickerViewController *pickerVC = [...

    iOS-Swift调用OC的Block

    MLSelect内有一个callBack的闭包是这么定义的

    typedef void(^callBackBlock)(id obj);

    Oc的调用方法:

    MLSelectPhotoPickerViewController *pickerVC = [[MLSelectPhotoPickerViewController alloc] init];
    pickerVC.callBack = ^(NSArray *assects){
      //
    };

    Swift的正确的调用方法:

    let addWaterVC = MLSelectPhotoPickerViewController()
    addWaterVC.callBack = { (AnyObject) -> () in
                print(AnyObject);
                self.dismissViewControllerAnimated(true, completion: { () -> Void in
    
                });
            }

    所以总结如下:

    // oc的block
    返回值(^名称)(类型 传值)
    // swift里调用
    名称 = {(传值)->(返回值) in 
    
    }


    展开全文
  • 在iOS应用的开发中,Swift必将取代OC,两者的趋势是“短期共存,长期取代”。... 我这里会实现一个简单的Swift调用OC的iOS实例,实现过程是十分的简单的。就像我们所有的Hello World一样。具体操作步骤如下:
  • 走进swfit(三)Swift调用OC

    千次阅读 2015-02-10 11:37:49
    走进swfit(三)Swift调用OC
  • Swift调用OC之NSString

    千次阅读 2015-02-25 22:27:01
    // Swift调用OC之NSString // //******************* import Foundation //必须的   var int1 = 100 var string = NSString(format: "%@, %@, %i", "Hello","WOrld",int1) //"Hell
  • Swift调用OC之NSDictionary

    2015-03-08 09:56:22
    // Swift调用OC之NSDictionary // // 1.NSArray与Array的互相转换 // 2.NSDictionary初始化 // 3.NSDictionary常用的属性和方法 // --获得成员个数 // --获取Key或Value组成的数组(swiftDictiona
  • Swift调用OC之NSArray

    2015-03-02 19:58:57
    // Swift调用OC之NSArray // // 1.NSArray与Array的互相转换: // 2.NSArray初始化 // 3.NSArray的常用属性和方法 //  --获取成员个数 //  --获取数组第一个元素 //  --获取数组最后一个元素 //  --...
  • 通过briding_header调用调用方法如下 用OC调用swift 导入该头文件
  • Swift调用OC之NSSet

    千次阅读 2015-03-10 21:23:47
    // Swift调用OC之NSSet // // 1.NSSet是一个无序对象的集合,集合内元素是唯一 // 2.NSSet初始化 // 3.NSSet常用的属性和方法 //  --获得集的元素个数 //  --获得集中所有元素组成的数组 //  --判断集合...
  • swift调用oc项目

    2019-09-26 20:16:07
    SwiftOC进行混编,首先要有一个.h文件,这里使用Bridging-Header.h然后设置项目的Build Settings--Swift Compiler--Objective-C Bridging Header内容为DemoApp/Bridging-Header.h,这个与Bridging-Header.h...
  • 开发过程中 很可能 把swift不成熟的地方用成熟的oc 代码来弥补一下 , 下面简单来学习一下,我...实施方式:把这个 有触摸事件的UIImageView(OFImageView) 用 OC 写成一个对象 然后用swift调用 1,第一次创建OFImage...
  • 转载请注明出处!!! 在swift调用方法都是直接点语法出来,不论是加方法(类方法)还是减方法(实例方法)直接点出来。但是笔者今天突然发现...原因:Xcode 限制了 swiftOC 初始化相关方法的调用,+ (ins...
  • Swift调用OC之文件操作1

    千次阅读 2015-03-16 20:06:49
    //*************************************...// >>>>>>>Swift调用OC之文件操作1 // // // ****  本节内容 **** // // 1.应用的目录结构 // 2.访问文件 // 3.NSURL和NSURLComponents // // //*************
  • @import url...@import url(/css/cuteeditor.css); 我是先创建了一个swift的工程。 1、需要使用OC文件时,正常添加就可以,不过中间会有一个提示如图 询问你是否建立桥接文件,点击是,会自动生成一...
  • Swift调用OC之数据存储-NSData

    千次阅读 2015-03-11 20:23:18
    // Swift调用OC之数据存储NSData // // NSData的对象可以看做是缓冲区 // NSData是静态缓冲区(大小固定),NSMutableData是动态的 //  // 1.创建NSData // 2.访问数据(读取NSData) // 3.比较数据是否相同 //...
  • Swift调用OC之文件操作-NSBundle

    千次阅读 2015-04-30 21:30:39
    //***********************...// >>>>>>>Swift调用OC之文件操作-NSBundle // // NSBundle内含有: // -- info.plist:这是必须要有的文件,用来配置应用的基本参数信息 // -- 可执行文件 // -- 资源文件:如图像
  • Swift调用OC之文件操作-NSFileHandle

    千次阅读 2015-04-21 23:04:57
    >>>>>>>Swift调用OC之文件操作-NSFileHandle // // 对文件内容数据的操作 // FileHandle-文件句柄有个活动指针,指向当前文件内数据的偏移量 // **** 本节内容 **** // // 1.文件内容定位
  • Swift调用OC之文件操作-NSFileManager

    千次阅读 2015-04-20 20:45:18
    //*****************************...// >>>>>>>Swift调用OC之文件操作-NSFileManager // // **** 本节内容 **** // // 1.目录查询 // 2.路径查询 // 3.路径操作 // --创建目录 // --创建文件 // --拷贝/删除
  • 今天用swift调用oc的一个工具类,在oc中可以轻松运行的转换成swift出现了问题 首先,oc中的类方法playerView因为会被系统自动去掉前面的TDW然后取后面的变成初始化init(),所以系统提示把类方法直接改成init() 然后我...
  • swift 调用oc委托

    千次阅读 2015-12-24 13:11:52
    如下委托在swift代码中的实现 @protocol NotifyMessageDelegate NSObject> // 连接服务器消息 - (void) OnConnect:(BOOL) bSuccess; // 用户登陆消息 - (void) OnLogin:(int) dwUserId : (int) ...
  • swift调用OC语法

    2016-02-04 12:25:06
  • Swift语言中,有很多封装类并没有,如果需要使用到,就需要桥接OC语言中的类,这时候就需要使用桥接头文件,一下是使用的步骤:创建一个Swift项目Demo,然后新建一个OC语言的文件如图:创建一个BgImgView的类,选择...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 797
精华内容 318
关键字:

swift调用oc