gpt4 book ai didi

ios - Swift 将数组数组映射到元组数组 - 'map' 生成 [T],而不是预期的

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

我确定我在这里做了一些愚蠢的事情,但不明白是什么。

目标是将数组数组(在 json 中为:[[0.1, 0.2, "Text"], ...])映射到 CGPoint/String 对的元组数组: [CGPoint(0.1, 0.2), "文本"]

我有一个如下所示的容器类:

struct Foo {
let text: [(CGPoint, String)]

init(json: [String: Any]) throws {
let textraw = (json["text"] ?? []) as! [[Any]]

text = textraw.map { // <- Error here
(a) -> (CGPoint, String) in
return (CGPoint(a[0] as! CGFloat, a[1] as! CGFloat), a[2] as! String)
}
}
}

错误信息是:

'map' produces '[T]', not the expected contextual result type '[(CGPoint, String)]'

我不明白为什么 swift 无法计算出 block 在这里返回正确的类型?

最佳答案

您没有指明您使用的是哪个版本的 Swift,但您的代码似乎适用于 Swift 3 和 4,只是您缺少 CGPoint 初始化程序的参数标签:

return (CGPoint(x: a[0] as! CGFloat, y: a[1] as! CGFloat), a[2] as! String)

关于ios - Swift 将数组数组映射到元组数组 - 'map' 生成 [T],而不是预期的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45172100/

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