美文网首页
swift oc 混编

swift oc 混编

作者: Jackson_Z | 来源:发表于2017-10-23 17:22 被阅读42次

swift 混编 oc

转自
1.创建swift项目
2.新建oc类

方式一:在一个全新的Swift,利用第一次新建提示的方式自动添加桥接头文件。
这个是在swift项目中,创建其他语言类的时候(OC,C等),系统会提示你添加一个桥接头文件,如图

image.png

生成格式为"你的工程名字-Bridging-Header.h"的文件

有的可能是xcode配置问题,没有提示,那也可以自己创建一个,格式得按照以上的格式,但还有一种方式,不仅能创建还可以改变这个格式,取一个自己喜欢的文件名,但需要修改一些配置.

方式二:新建一个头文件,名为:JeckHeader.h
在targets->build settings ->Object-C Bridging Header 位置设为Swift/JeckHeader.h,如下图所示,这个头文件也就是桥接头文件,代码一会儿再说.

image.png image.png image.png

** 格式为"工程名-swift.h",它就是项目中所有的swift类的头文件. **

//  SwiftClass.swift 类中的代码,这里边只是添加了一个函数,OC的类会调用这个方法  
  
import UIKit  
  
class SwiftClass: NSObject {  
    func sayHello(name:String) -> String {  
        let greeting = "Hello" + name + "!"  
        return greeting  
    }  
  
} 
//  OCClass.m  OC的.m文件,这里实现了两个方法并定义了一个C语言的函数,为了方便对比,方法里实现了block,在这个类中演示:OC调用swift类中的方法  
  
#import "OCClass.h"  
  
#import "SwiftTest-swift.h"//细心的朋友一定注意到了,项目文件中并没有这个头文件,但实际上项目中是有的,你也可以用command+鼠标左键跳进去查看,是隐藏的,如果你是按照我前边的讲的创建的swift文件,那你在这里是可以导入这个头文件的,格式为"工程名-swift.h",它就是项目中所有的swift类的头文件.  
  
@implementation OCClass  
  
-(void)desc22{  
    //声明block  
    int (^p)(int, int);  
    //把函数赋值给block  
    p = ^(int a, int b){  
        return a + b;  
    };  
    //使用  
    int result = p(10,40);  
    NSLog(@"swift调用OC方法输出result:%d\n",result);  
    //OC中调用swift函数  
    SwiftClass *sc = [[SwiftClass alloc] init];//创建swift对象  
    NSString *str =[sc sayHelloWithName:@"jeck"];//用swift的对象调用自己的函数(方法)  
  
    NSLog(@"OC中调用swift函数输出 %@",str);      
}  
//定义函数  
int sum2(int a, int b){  
    return a + b;  
}  
  
-(void)desc2{  
    //2.声明block  
    int(^p)(int, int);  
      
    //3.把函数赋值给block  
    //p = sum2;  
    p = ^(int a, int b){  
        return a + b;  
    };  
      
    //4.使用  
    int result = p(10,40);  
    printf("swift调用OC方法输出result:%d\n",result);  
}  

//桥接头文件SwiftTest-Bridging-Header.h  
//导入OC类  
#import "OCClass.h"  

相关文章

  • oc Swift 混编

    oc Swift 混编 oc 项目 混编Swift1.1 oc 调用 Swift 的类 和 方法步骤: ...

  • Swift

    混编 15、OC与Swift的混编_海森堡_lichangan的博客-CSDN博客_oc swift 混编[htt...

  • OC和Swift混编手动创建桥接文件及命名空间

    Obj-C混编Swift && Swift混编Obj-C Swift引用OC实现通过桥接头文件,OC引用Swift...

  • OC和Swift混编一

    OC工程下混编 Swift工程下混编请查看OC和Swift混编二 1.建一个OC工程命名为OCTestSwift ...

  • OC和Swift混编二

    Swift工程下混编 OC工程下混编请查看OC和Swift混编一 1.建一个Swift工程命名为SwiftTest...

  • Swift(总)

    Swift目录如下: Objective-C和Swift混编指南-s混编-OC&Swift[https://www...

  • OC与Swift混编 / Mix & Match

    OC与Swift混编 / Mix & Match OC in Swift 通过Header File创建Bridg...

  • OC Swift文件混编

    一.Swift 类可以继承 OC 类,OC 类不能继承 Swift 类。 二.Swift 和 OC 混编 三.两个...

  • swift与OC混编

    swift与OC混编的总结 现在的swift开发多数会用到混编。swift和oc是通过桥接文件来实现的。无论是在o...

  • OC和Swift混编

    OC和Swift的混编,分为两种情况: OC项目中嵌入Swift文件 Swift项目中嵌入OC文件 先来看OC项目...

网友评论

      本文标题:swift oc 混编

      本文链接:https://www.haomeiwen.com/subject/wxmauxtx.html