我在Objective-C中使用Swift类,但在自动生成的<productname>-Swift.h
标题中,一些类型被注释掉了:
@property (nonatomic, copy) /* [String : [ProgressCallback]] */ progressListeners;
@property (nonatomic, copy) /* [String : [CompleteCallback]] */ completeListeners;
@property (nonatomic, copy) /* [String : [ErrorCallback]] */ errorListeners;
我知道这些类型的数组字典无法在Objective-C中保留,但为什么不注释掉整个属性或者只是将它称为NSDictionary?实际上,它会导致语法错误。我不需要在Objective-C中使用这些属性,有什么办法可以让它生成有效的头文件吗?
答案 0 :(得分:1)
我把Swift成员私有化了。看起来私有成员被排除在Swift标题之外。
所以,具体来说,在这种情况下,你可以在Swift中定义你的成员:
@objc class MyClass {
private var progressListeners : [String : [ProgressCallBack]] = [:]
private var completeListeners : [String : [CompleteCallBack]] = [:]
private var errorListeners : [String : [ErrorCallBack]] = [:]
}