在我的一个项目中,我想使用来自 Objective C 类的 Swift 类。我创建了 XXX-swift.h 文件和一个桥接头文件。大多数 swift 文件都运行良好,但我发现了我的 APIResult 类的问题。
@objc class ApiResult:NSObject {
var success:Bool?
var message:String?
}
在 XXX-swift.h 文件中
SWIFT_CLASS("_TtC16RemoteController9ApiResult")
@interface ApiResult : NSObject
@property (nonatomic, copy) NSString * _Nullable message;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end
缺少 success
属性。重建和清理构建不起作用。
为什么会这样
最佳答案
Objective-C 不支持可选值。从 Swift 到 Objective-C 的桥接允许类类型的可选项,因为它们只是在 ObjC 端转换为 nil
。但是,Bool
是原始类型,在 Objective-C 中没有 nil
bool 值这样的东西。
关于ios - 在 Objc 项目中使用 swift 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37960220/