【发布时间】:2017-07-18 16:09:45
【问题描述】:
我确定我在这里做了一些愚蠢的事情,但不明白是什么。
目标是将数组数组(在 json 中为:[[0.1, 0.2, "Text"], ...])映射到 CGPoint/String 对的元组数组:[CGPoint(0.1, 0.2), "Text"]
我有一个看起来像这样的容器类:
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' 产生 '[T]',而不是预期的上下文结果类型 '[(CGPoint, String)]'
我不明白为什么 swift 无法确定块在这里返回正确的类型?
【问题讨论】: