3

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]] にハードキャストしようとすると、

「NSNumber を Float にブリッジできません」

これを修正する方法はありますか?Swift 4.0 を使用すると問題なく動作します。

4

1 に答える 1