swift oc 相互调用
2023-04-16 本文已影响0人
tom__zhu
首先要记住有两个区别
1> bridging headers for projects
2> umbrella file for frameworks
工程中 swift调用OC
- Swift调用OC类,必须要有桥接文件,且在桥接文件中 import OC类的.h文件。
1. 创建 "工程名称"-Bridging-Header.h
文件
- 创建新的工程时会自动提示创建桥接文件SwiftTestProject(工程名称)-Bridging-Header.h, 这个文件是swift调用OC所必须的.
创建桥接文件
- 如果新建工程没有勾选创建
-Bridging - Header.h
文件, 则需要手动创建一个"工程名称"-Bridging-Header.h
文件, 创建一个Header File文件,一般命名为“项目名-Bridging-header”
,内容清空
- 然后在工程中设置:
TARGET -> Build Settings -> Objective-C Bridging Header
填充好你的文件名称:"工程名称"-Bridging-Header.h
- 找到工程文件下的
TARGETS --> Build settings
中搜索Defines Module
设置为YES
2. 引入OC的.h头文件 就能在swift项目中调用相对于的OC类了.
image.pngoc调用swift
1. 工程配置
找到工程文件下的TARGETS -->Build settings
中搜索 Product Module Name
设置为工程名,这时工程会自动创建一个"项目名"-Swift.h
的文件,该项目中为“SwiftTestProject-Swift.h”,这个文件用于oc调用swift文件, 默认不展示的.
2. 引入 "项目名"-Swift.h
文件
在OC文件里面里面#import "项目名称-Swift.h"
, 注意这个文件没有提示,要手动打出来,然后就能在OC类里面使用swift的类了.
注意和总结
-
oc引用swift文件要引用“项目名-Swift.h”文件, 需要手动敲, 没提示的,swift引用oc文件要创建桥接文件,桥接文件中引用oc的.h文件
-
注意OC调用swift, swfit中的类需要注意的地方,
Frameworks
TBU
OC 调用Swift单例,需要加@objc和open / public
image.pnghttps://stackoverflow.com/questions/36771596/error-using-bridging-headers-with-framework-targets-is-unsupported