gpt4 book ai didi

ios - ViewController 中具有泛型的可选对象

转载 作者:行者123 更新时间:2023-11-28 08:08:09 25 4
gpt4 key购买 nike

不确定如何具体说明我的问题。所以这是一个例子:

final class MyClass<T: MyProtocol>: NSObject {
init(something: Something<[T]>) { ... }
}

这个对象 (MyClass) 将在 ViewController

final class MyViewController: UIViewController {
//Should be optional, because I will assing myObject in prepareForSegue
//And I will initialize MyClass with different Objects,
//that implement MyProtocol
var myObject: MyClass?
}

但我必须指定 MyClass 泛型类型,但在初始化期间我不会知道。所以我的问题是,是否可以有一个带有泛型的可选对象,该对象将在生命周期的后期指定?

编辑。我认为如果不在 init 中指定通用类型,就不可能实现我想要的。

最佳答案

我想你想要一个既是类又是协议(protocol)的变量。这仅在 Swift 4 中使用当前语法才有可能:

let myObject: MyClass & MyProtocol

解决方法可能是使用 NSObject(因为您的类继承了 NSObject)然后如果您需要类属性/函数,您可以将其转换回您的类:

var myObject: NSObject?
(myObject as? MyClass<YourGenericT>).someFunctionDeclaredInMyClass()

关于ios - ViewController 中具有泛型的可选对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44518415/

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