gpt4 book ai didi

ios - 如何将泛型类型指定为变量?

转载 作者:行者123 更新时间:2023-11-28 13:49:02 24 4
gpt4 key购买 nike

我在使用以下泛型的模型类中有一个函数:

func loadNextPage<T: ListDiffable & JSONDecodable>(as: T.Type)

我从我的 View Controller 中调用这个函数是这样的:

model.loadNextPage(as: EventJSONModel.self)

但是,因为我的 View Controller 可用于加载不同类型的数据,所以我需要在加载 View Controller 时指定T.Type。我的 View Controller 无法实例化为通用的,因为我正在通过 Storyboard加载它。

理想情况下,我想创建一个像这样的变量:

private var objectType: (ListDiffable & JSONDecodable).Type = EventJSONModel.self

然后像这样引用它:

model.loadNextPage(as: objectType)

但这行不通...我该怎么做?

最佳答案

您正在将 Protocol.Type 传递给通用 T.Type,这不能直接完成。虽然有一些技巧。查看此线程。
Why can't I pass a Protocol.Type to a generic T.Type parameter?

关于ios - 如何将泛型类型指定为变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55001421/

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