iOS混编之--OC调用Swift

如果我们的工程是OC创建的这时候想要使用Swift写的一个第三方,这时候就要使用混编了,当我们创建Swift类的时候会有一个提示,问我们要不要创建一个桥接头文件,一般选择为创建

询问是否创建桥接头文件

创建后工程中就会有一个桥接的头文件

桥接的头文件

然后随意在Swift文件中写一个函数

import UIKit

class SwiftClass: NSObject {
    func sayHello(name :String) -> String {
        return name + "sayHello";
    }
}

在OC类里面调用Swift的方法首先要配置一下工程,在“Build Setting”->"Product Module Name"中添加工程名

工程配置

重点:在要调用Swift的方法的类中引入

import "工程名-Swift.h"

引入这个类就引入了所有的Swift类
然后就可以调用Swift里面的方法了

#import "ViewController.h"
//引入这个类就引入了所有的Swift类
#import "OCdiaoSwift-Swift.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
 
    SwiftClass *sc = [[SwiftClass alloc] init];
    //系统已经把Swift方法转化为了OC方法
    NSString *str = [sc sayHelloWithName:@"CF"];
    NSLog(@"%@",str);
}
结果显示

多说一句:
凡是用Swift写的类,如果不继成自NSObject或NSObject 的派生类,那么编译后将不会生成对应的转换类。从而使得OC 中找不到相应的声明。
我们可以进去看一下我们包含的“工程名-Swift.h”
可以看到苹果是怎么做的,是自动生成了对应的OC代码


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言: Swift语言出来后,可能新的项目直接使用Swift来开发,但可能在过程中会遇到一些情况,某些已用OC写好...
    疯狂的电脑阅读 2,368评论 0 9
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,296评论 4 61
  • 在这个现代化的都市中,每个人都住在墙壁里,看的到窗外的风景,可永远也走不出这一片小小的天地…
    秋水明阅读 171评论 0 0
  • 1. 记录整个项目的完成时间 原文——p045, 我浏览了他《论生物学中运用数学的前景》一文的手稿,在最后一页我看...
    SPxiaomin阅读 368评论 0 0