【发布时间】:2016-10-20 01:35:23
【问题描述】:
转换为 Swift 3 后,我遇到了 Obj-C 的可见性问题(Interface Builder 在运行时找不到控制器类)。于是我加了@objc去调试:
@objc(ASSitesTableViewController)
class ASSitesTableViewController : GenericFRCTableVC<Site>
然后 Xcode 回吐:
'@objc' 类的通用子类不能具有显式的 '@objc' 属性,因为它们在 Objective-C 中不直接可见
但是这个类并不是真正的通用。它只继承自一个已专门化的类。
我知道子类化一个专门的类型是一个很长的尝试,因为它在早期版本的 Swift 中不受支持,但它编译时没有任何抱怨。我没想到我的班级会保持通用。
我发现在 Swift 文档的继承部分没有提到泛型,反之亦然。
基类是否必须是非泛型的,子类才能对 Obj-C 可见?
【问题讨论】: