
OC工程新增Swift混合开发
OC和Swift混合开发简单示例
之前开发项目都是用Objective-C开发的,现在有新的功能需要集成到项目中,要求用Swift,作为资深地中海码农当然是有求必应,下边将介绍如何在OC工程中集成Swift功能模块。
1.新建Swift文件
1.1 在工程中newFile,选择iOS系统(选择系统时要小心,如果选错,引入头文件的时候,就会懵),然后选择Swift File 点击next创建
1.2如果是第一次引入Swift ,那么Xcode会弹框询问你要不要创建桥接头文件,选择Create Bridging Header 系统会自动创建一个 ocrRequestDemo-Bridging-Header.h( 项目名称-Bridging-Header.h)文件
如果新建Swift文件的时候没有弹出这个创建桥接头文件的弹框并且项目中没有Swift的桥接文件,不要慌,可以直接创建一个.h文件,然后给他命名为 ocrRequestDemo-Bridging-Header.h (项目名称-Bridging-Header.h)。你可以创建完Swift文件后 到 Build Setting 中 查找 Swift Compiler - General 配置,一定是创建完Swift后,不然 Build Setting 中不会有 Swift 的这个配置。在配置中找到 Objective-C Bridging Header 选项,观察后边配置的.h文件的名字,确保创建的.h文件的名字与这里配置的相同(如下图)
2.配置Defines Module
3.创建OC对象,声明并实现方法
3.1这里创建了OCObject并创建了实例logFunction方法。
// OCObject.h
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface OCObject : NSObject
-(void)logFuction;
@end
NS_ASSUME_NONNULL_END
3.2在.m文件中将方法实现,输出日志
// OCObject.m
#import "OCObject.h"
@implementation OCObject
-(void)logFuction{
NSLog(@"OCObject - 日志输出");
}
@end
4.在Swift的Header文件中添加需要使用的OC头文件
// ocrRequestDemo-Bridging-Header.h
#import "OCObject.h"
5.声明Swift类和方法
在Swift文件中声明一个类 ocrRequest,需要在类和函数方法前面添加 @obcj 才能被OC的类调用,同时Swift类需要继承自NSObject
// ocrReqDemo.swift
import Foundation
@objc class ocrRequest: NSObject{
@objc func request(){
let ocobj = OCObject()
ocobj.logFuction()
}
}
6.创建对象引用对象实例方法
6.1将ocrRequestDemo-Swift.h文件引入ViewController,创建一个ocrRequest的对象ocrReq,用ocrReq对象调用实例方法request
// ViewController.m
#import "ViewController.h"
#import "ocrRequestDemo-Swift.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
ocrRequest *ocrReq = [[ocrRequest alloc]init];
[ocrReq request];
}
@end
6.2最终输出日志
更多推荐
所有评论(0)