swift2 Swift是否可以从一个轻量级的通用Objective-c类继承?

d8tt03nd  于 2022-11-06  发布在  Swift
关注(0)|答案(1)|浏览(197)

我有两个类,基类是Obj-c,子类是Swift。
Obj-c类使用新的XCode 7的轻量级通用特性,定义如下:

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

这对于Obj-c子类来说很有效。
现在对于Swift,如果我像通常那样定义泛型类型,我会得到以下错误:
无法专用化非泛型类型“BaseObjcController”。
我的第二个类定义如下:

class SwiftController: BaseObjcController<SFUser> {

}

任何帮助都将不胜感激。谢谢。

tzcvj98z

tzcvj98z1#

**更新:Swift 3开始,**Objective-C轻量级泛型 * 被 * 导入Swift。有关更多信息,请参见

注记
除了这些Foundation集合类之外,Swift会忽略Objective-C的轻量级泛型。任何其他使用轻量级泛型的类型都会被导入Swift,就像它们是未参数化的一样。
正如你在“Generated Interface”助手视图中所看到的,你的Objective-C类被导入Swift,作为

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

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

请随时提交增强错误报告!

相关问题