Swift是否可以从一个轻量级的通用Objective-c类inheritance?
我有两个类,基类在Obj-c中,子类在Swift中。
Obj-c类使用新的XCode 7的轻量级通用特性,定义如下:
@interface BaseController<T: SFObject *> : UIViewController @property(nonatomic, strong) T model; @end
这对Obj-c子类很好。
现在对于Swift,如果我像平常一样定义genericstypes,我会得到以下错误:
无法专门化非genericstypes“BaseObjcController”。
我的第二堂课定义如下:
class SwiftController: BaseObjcController<SFUser> { }
任何帮助,将不胜感激。 谢谢。
从与Objective-C API交互 :
注意
除了这些Foundation集合类之外,Swift还忽略了Objective-C轻量级generics。 任何其他使用轻量级generics的types都会被导入到Swift中,就好像它们没有被参数化一样。
所以目前这是不可能的。 从“生成的接口”助手视图中可以看到,您的Objective-C类被导入到Swift中
public class BaseController : UIViewController { public var model: SFObject! }
苹果开发者论坛也讨论过这个问题:
- 从Swift中看不到Objective-C的generics?
随意提交增强型错误报告!