我在 Objective-C 中使用 Swift 类,但在自动生成的 <productname>-Swift.h
中header 一些类型被注释掉了:
@property (nonatomic, copy) /* [String : [ProgressCallback]] */ progressListeners;
@property (nonatomic, copy) /* [String : [CompleteCallback]] */ completeListeners;
@property (nonatomic, copy) /* [String : [ErrorCallback]] */ errorListeners;
我知道这些类型化的数组字典无法在 Objective-C 中保留,但为什么不注释掉整个属性或将其称为 NSDictionary?实际上,它会导致语法错误。我在 Objective-C 中不需要这些属性,我能做些什么来让它生成有效的头文件吗?
最佳答案
我通过将 Swift 成员设为私有(private)来解决这个问题。看起来私有(private)成员被排除在 Swift header 之外。
因此,具体来说,在这种情况下,您可以在 Swift 中这样定义您的成员:
@objc class MyClass {
private var progressListeners : [String : [ProgressCallBack]] = [:]
private var completeListeners : [String : [CompleteCallBack]] = [:]
private var errorListeners : [String : [ErrorCallBack]] = [:]
}
关于objective-c - 类型在 Swift Objective-C header 中被注释掉了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24747416/