gpt4 book ai didi

swift - 有没有一些方法可以检查类是否是从泛型类型继承的?

转载 作者:行者123 更新时间:2023-11-30 12:36:38 25 4
gpt4 key购买 nike

是否有一些方法/过程如何检查类是否从泛型类型继承而无需在 swift 中指定确切的泛型类型?

这是一个例子:

class AClass {
}

class BClass<T: UIView>: AClass {
var a:T?
}

let myClass: AClass = BClass<UIImageView>()

myClass is BClass // false!
myClass is BClass<UIView> // false!
myClass is BClass<UIImageView> // true

我只想检查 myClass 是否为 BClass 类型并访问 a 属性(而不仅仅是检查镜像类型)。

Mirror(reflecting: myClass).subjectType //BClass<UIImageView>.Type

最佳答案

您可以定义一个协议(protocol)(例如 BClassType),让您的泛型类型使用该协议(protocol)。然后,您可以使用 myObject is BClassType 来检查实例是否是使用您的泛型类型定义的。

关于swift - 有没有一些方法可以检查类是否是从泛型类型继承的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42784296/

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