ios - 在 Objc 项目中使用 swift 类

标签 ios objective-c swift

在我的一个项目中,我想使用来自 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/

相关文章:

ios - 设置最大数量级?

ios - 同一项目中另一个文件夹中的访问类 (Xcode)

ios - CollectionView 中的最后一项未对齐 - Swift

ios - 如何在不发布App的情况下在App Store中打开我的App进行更新

ios - XCode 6.3 警告 : Comparison of address of 'myObject' not equal to null pointer is always true

objective-c - iPhone : change UITableView cells paint order

ios - iPhone X 键盘出现显示额外的空间

ios - 核心数据实体的奇怪行为

ios - 如何升级sqlite中的数据库版本并在swift中的表中添加新列

ios - 使用 CAAnimationGroup 序列化动画