iOS 在OC旧项目中使用Swift进行混编

iOS 在OC旧项目中使用Swift进行混编

1、创建桥接文件

​ 第一次在Swift创建OC文件,或者第一次OC创建Swift时,xcode会提示桥接,Creat Bridging Header即可,这个文件用于Swift调用OC文件,与OC调用Swift无关。

2、在TARGETS中设置Defines Module

​ TARGETS ->Build Settings -> Packaging 中 设置Defines Module为YES

3、如何使用
  • 在OC中调用swift:在需要使用swift文件的oc类中,添加头文件 #import "项目名称-Swift.h"
objectivec 复制代码
#import "TestOcSwitchSwift-Swift.h"
SwiftViewController * tmpVC = [[SwiftViewController alloc]init];
[tmpVC setModalPresentationStyle:UIModalPresentationFullScreen];
[self presentViewController:tmpVC animated:YES completion:nil];
  • 在swift中调用oc:在桥接文件中引入要使用的oc类
objectivec 复制代码
在 TestOcSwitchSwift-Bridging-Header.h 中
#import "FirstViewController.h"
//在需要使用的地方直接调用。例如:在这里直接跳转页面
 let tmpVC = FirstViewController()
 tmpVC.modalPresentationStyle = .fullScreen
 present(tmpVC, animated: true, completion: nil)

相关推荐
HarderCoder2 小时前
Swift Concurrency:彻底告别“线程思维”,拥抱 Task 的世界
swift
HarderCoder2 小时前
深入理解 Swift 中的 async/await:告别回调地狱,拥抱结构化并发
swift
Magnetic_h2 小时前
【iOS】锁的原理
笔记·学习·macos·ios·objective-c·cocoa·xcode
HarderCoder3 小时前
深入理解 SwiftUI 的 ViewBuilder:从隐式语法到自定义容器
swiftui·swift
HarderCoder3 小时前
在 async/throwing 场景下优雅地使用 Swift 的 defer 关键字
swift
东坡肘子3 小时前
我差点失去了巴顿(我的狗狗) | 肘子的 Swift 周报 #098
swiftui·swift·apple
Digitally3 小时前
将 iPhone 联系人转移到 Infinix 的完整指南
ios·cocoa·iphone
Swift社区15 小时前
Swift 实战:实现一个简化版的 Twitter(LeetCode 355)
leetcode·swift·twitter
HarderCoder15 小时前
当Swift Codable遇到缺失字段:优雅解决数据解码难题
swift
imLix18 小时前
RunLoop 实现原理
前端·ios