我遇到了一个奇怪的问题,在更新到Swift 4.1之后,从JSON到[[Float]]的演员表失败了。让我快速展示代码。
Alamofire.request(url,
method: .get, parameters: nil, headers: headers()).responseJSON(queue: queue, completionHandler: { response in
if let floatDoubleArray = response.result.value as? [[Float]] {
// Do stuff
}
}
以上在Swift 4.0中运行得非常好,但突然之间失败了。我得到的回应如下。
<__NSArrayI 0x7fb9d02fd800>(
0,
0.05,
0.051,
0.052,
0.051,
0.05,
0.05,
0.049,
0.048,
0.048,
0.047,
0.047,
0.047,
0.046,
0.046,
0.047,
0.047,
0.047,
0.048,
0.048,
0.049,
0.049,
0.05,
0.051,
0.051,
0,
0,
0,
0,
0,
0,
0
)
,
<__NSArrayI 0x7fb9d02fde00>(
0,
0.051,
0.051,
0.051,
0.05,
0.05,
0.049,
0.048,
0.048,
0.048,
0.047,
0.047,
0.047,
0,
0,
0,
0,
0,
0,
0
)
)
)
如果我尝试将其硬编辑为[[Float]],我会
&#34;无法将NSNumber桥接到Float&#34;
任何想法如何解决这个问题?它使用Swift 4.0运行良好。
答案 0 :(得分:4)
你能试试吗
if let floatDoubleArray = response.result.value as? [[NSNumber]] {
let floatArr = floatDoubleArray.map{$0.map{$0.floatValue}}
}