我在 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
,因为这是默认设置。
协议仅以
@protocol CBPeripheralDelegate;
为前缀。
给枚举添加前缀比较困难,因为您需要知道枚举的实际大小,因此最好只导入声明它们的位置。 您可以为此创建仅包含枚举的简单标头。