objective-c - 类型在 Swift Objective-C header 中被注释掉了吗?

标签 objective-c swift

我在 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/

相关文章:

objective-c - 测量 CGFont 中最大字符的尺寸

swift - webViewDidStartLoad 和 webViewDidFinishLoad 不工作

iphone - 使用 NSFetchedResultsController 和搜索显示 Controller 搜索 CoreData

ios - 改变 LeveyPopListView 的起点

objective-c - 在 Apple 上合并静态库

ios - UIImagePickerController 正确地在其上叠加图像

ios - Typhoon 依赖注入(inject)和 Swift 3 : Appdelegate isn't AnyObject

xcode - 如何更改/更新 NSTimer 中的时间间隔?

ios - 无效更新 : invalid number of sections

ios - swift 3 : thumbnail from video