在一次Xcode更新后,我遇到了一个奇怪的问题。在我的应用程序中,当我从API获取响应时,我需要手动解析并将其映射到我的模型中。在我的代码中有很多地方都使用了null coalescing将JSON值强制转换为Float
,像下面这样:
randomVariable = jsonDict["jsonKey"] as? Float ?? 0
之前它表现正常,但更新后总是默认为0。为了确定原因,我尝试将其强制转换为Float
,如下所示:
randomVariable = jsonDict["jsonKey"] as! Float
这导致了以下错误:
经过进一步调查,我发现Xcode正在使用Swift 3.3(之前是Swift 3.2)。在StackOverflow上找到的解决方案都是围绕将其强制转换为无法将NSNumber转换为Float
NSNumber
而不是Float
。正如我上面提到的,我的应用程序中有类似的代码行分散在各处。我想知道是否有一种方法来解决这个问题。也许可以使用某种扩展?
Float
没有问题。 - rmaddy