不可能继承DispatchGroup
,怎么做?
注意:
示例,带有一个有状态的包,
class PushDispatchGroup: DispatchGroup {
var sentIds: [(tableName: String, rowId: String)] = []
}
感谢shallowThought指出这是在iOS10中修复的。
答案 0 :(得分:4)
如何从“只能通过Objective-C运行时可见”的类继承?
你没有。
这并不像你正在思考它的方式那样包裹着一个合适的“对象”。它围绕着dispatch_group
,这是一个C结构。这个类不是设计为子类,也不是以正常的方式连接到ObjC,因此你也不能将它子类化。
NSString
)。在许多情况下,通过仔细选择结构,类型被设计为在内存布局上相同(我没有选择CFString
,但它看起来像这个组中的一个)。当这是真的,你不能添加任何存储,因为那时内存布局会有所不同,你就会打破桥接。
正如各个评论者所说,你也不应该这样做,这就是为什么 没有简单的答案。未明确设计用于子类化的类有意或很难在Swift中进行子类化(这经常出现在比DispatchGroup
更少的棘手类型中,答案是相同的:它是有意的;不要这样做)。