gpt4 book ai didi

swift - 从调度队列访问泛型

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

我有一个包含函数的通用类 A:

func addItem<item:T>->T? {

}

我用 CellClass 初始化这个类。我从 addCell() 调用 addItem。以下内容被毫无问题地接受。

func addCell(cell:CellClass, t:A<CellClass>) {
t.addItem(cell)
}

但这不起作用:

func addCell(cell:CellClass, t:A<CellClass> {
dispatch_async(queue, {
t.addItem(cell)
})

Xcode 立即提示:“CellClass?不是 Void 的子类型”
任何想法为什么? (注意,否则队列正常工作)

最佳答案

Swift 做了一个 "implicit return" from single-line closures ,因此您的代码实际上被解释为:

func addCell(cell:CellClass, t:A<CellClass> {
dispatch_async(queue, {
return t.addItem(cell)
})
}

错误是因为闭包有一个 Void 返回类型,但是 addItem 返回 CellClass?。您可以通过在之后添加一个 return 行来解决此问题:

func addCell(cell:CellClass, t:A<CellClass> {
dispatch_async(queue, {
t.addItem(cell)
return
})
}

关于swift - 从调度队列访问泛型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25310740/

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