gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 01:04:52 25 4
gpt4 key购买 nike

我有两个类,基类在 Obj-c 中,子类在 Swift 中。

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

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

这适用于 Obj-c 子类。

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

Cannot specialize non-generic type 'BaseObjcController'.

我的第二个类定义如下:

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”助手 View ,你的Objective-C类被导入了以 swift 为

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

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

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

关于ios - Swift 是否可以继承一个轻量级的通用 Objective-c 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32628297/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com