如何解析 Swift 桥接标头中的枚举和协议

问题描述 投票:0回答:1

我在 React Native Turbo Module 项目中导入一些 Swift 文件时遇到问题。

Foundation 和其他类将在我的 Swift 桥接标头中使用

@class
前缀进行定义,但协议和枚举不会(不确定是否有办法为它们添加前缀),从而导致无法解析的引用。

这是桥接头文件中的示例片段:

@class CBPeripheral;
@class NSNumber;

@interface MySwiftClass (SWIFT_EXTENSION(my_library)) <CBPeripheralDelegate>
@end

我收到此错误:

Cannot find protocol declaration for 'CBPeripheralDelegate'

这是 Swift 扩展的样子。

extension MySwiftClass: CBPeripheralDelegate {

}

其他枚举和代表也会发生这种情况,例如

CBManagerState
CBCharacteristicWriteType

CLANG_ENABLE_MODULES
已设置为
YES
,因为这是默认设置。

swift objective-c react-native cocoapods objective-c-swift-bridge
1个回答
0
投票

协议仅以

@protocol CBPeripheralDelegate;
为前缀。

给枚举添加前缀比较困难,因为您需要知道枚举的实际大小,因此最好只导入声明它们的位置。 您可以为此创建仅包含枚举的简单标头。

© www.soinside.com 2019 - 2024. All rights reserved.