OC工程新增Swift混合开发

本文详细指导了如何在Objective-C项目中引入Swift模块,涉及步骤如创建Swift文件、配置BridgingHeader、声明和调用OC类的方法,适用于技术开发者进行项目升级需求。
摘要由CSDN通过智能技术生成

之前开发项目都是用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最终输出日志

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值