gpt4 book ai didi

Swift 不接受泛型特化作为返回类型

转载 作者:搜寻专家 更新时间:2023-11-01 05:34:27 25 4
gpt4 key购买 nike

我正在尝试返回 TransactionItemViewModel 的专用类型 DepositItemViewModel 但出现编译错误:无法将 DepositItemViewModel 转换为返回类型 TransactionItemViewModel .

Cannot convert DepositItemViewModel to return type TransactionItemViewModel

这是我的类声明:

class Deposit: Transaction 

class TransactionItemViewModel<T: Transaction>

class DepositItemViewModel: TransactionItemViewModel<Deposit>

最佳答案

使用协议(protocol)

protocol P{}
class A: P{}
class B<T: P>{}
class C:B<A>{}


func f(o: AnyObject)->B<P> {
return C()
}

给你

error: using 'P' as a concrete type conforming to protocol 'P' is not supported

使用类

class P{}
class A: P{}
class B<T: P>{}
class C:B<A>{}


func f(o: AnyObject)->B<P> {
return C()
}

给你

error: cannot convert return expression of type 'C' to return type 'B<P>'

两种情况下的返回类型都必须是 B<A>

在您的情况下,您必须将返回类型更改为 TransactionItemViewModel<Deposit>

关于Swift 不接受泛型特化作为返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44249307/

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