Swift 是否可以从轻量级泛型 Objective-c Class 继承?

Is it possible for Swift to inherit from an lightweight generic Objective-c Class?

我有两个 classes,基础 class 在 Obj-c 中,子 class 在 Swift.

Obj-c class 使用新的 XCode 7 的轻量级通用特性定义如下:

@interface BaseController<T: SFObject *> : UIViewController
@property(nonatomic, strong) T model;
@end

这对 Obj-c subclasses 来说效果很好。

现在 Swift 如果我像往常一样定义泛型类型,我会收到以下错误:

Cannot specialize non-generic type 'BaseObjcController'.

我的第二个class定义如下:

class SwiftController: BaseObjcController<SFUser> {

}

如有任何帮助,我们将不胜感激。 谢谢。

更新:Swift 3 开始, Objective-C 轻量级泛型 导入到 Swift。有关详细信息,请参阅


旧答案: 来自Interacting with Objective-C APIs

NOTE

Aside from these Foundation collection classes, Objective-C lightweight generics are ignored by Swift. Any other types using lightweight generics are imported into Swift as if they were unparameterized.

所以目前这是不可能的。正如你所看到的 "Generated Interface"助手查看,你的Objective-Cclass被导入了 到 Swift 为

public class BaseController : UIViewController {
    public var model: SFObject!
}

Apple 开发者论坛也对此进行了讨论:

随时提交增强错误报告!