当前位置: 首页 > 面试题库 >

无法将NSNumber桥接到Float Swift 3.3

巩阳秋
2023-03-14
问题内容

Xcode更新后,我遇到了一个奇怪的问题。在我的应用程序中,当我从API获得响应时,我会手动解析它并将其映射到我的模型。我的代码中有很多地方Float使用空合并将JSON值转换为如下所示:

randomVariable = jsonDict["jsonKey"] as? Float ?? 0

它过去可以正常工作,但是在更新后,它始终默认为0。为了确定原因,我尝试强制将其强制转换为Float如下所示

randomVariable = jsonDict["jsonKey"] as! Float

这导致以下错误

无法将NSNumber桥接到Float

经过进一步调查,我发现Xcode使用的是Swift 3.3(以前,它使用的是Swift
3.2)。我在StackOverflow上发现的解决方案围绕着将其强制转换为NSNumber而不是Float。正如我上面提到的,我在我的应用程序中分布着相似的代码行。我想知道是否有解决此问题的方法。也许使用某种扩展?


问题答案:

如您所知,您可能需要先将其转换为NSNumber

像这样:

randomVariable = (jsonDict["jsonKey"] as? NSNumber)?.floatValue ?? 0

也许正则表达式替换将帮助您更新代码。

模式: jsonDict\[([^\]]*)\] as\? Float

用。。。来代替: (jsonDict[$1] as? NSNumber)?.floatValue



 类似资料:
  • 问题内容: 我有这段代码可创建视图并对其应用渐变。 Xcode没有给我任何编译错误,但是代码崩溃了 与消息 数组元素不能桥接到Objective-C 实际上,我原以为它会在那里崩溃,因为我不确定如何在Swift上创建CGColors数组。令人惊讶的是Xcode提到了Objective-C。在我看来,我正在迅速创建CGColorRef … 有什么线索吗?为什么提到Objective-C,我该如何解决

  • 问题内容: 题 是否有可能重复雨燕数值桥接基金会:■ 引用类型,例如,,和类型?具体来说,复制下面介绍的自动预分配桥接。 这种解决方案的预期用法示例: 背景 一些本机Swift数(值)类型可以自动桥接到(引用)类型: 迅数字结构类型的实例,例如,, ,,和,不能由所表示的 类型,因为仅代表一个类类型的实例。但是,启用桥接到时,可以将Swift数值分配给常量和类型变量, 作为 类的 桥接实例。 …

  • 问题内容: 我已经在RHEL7上安装了ES 7.5和Kibana 7.5,但是在启动Kibana并检查UI后,我看到了错误,“ Kibana服务器尚未准备好。” 检查Kibana日志,我发现它没有正确连接到ES。任何帮助表示赞赏! 这是 journalctl –unit kibana 的输出: Elasticsearch.yml Kibana.yml 另外,当我运行 ss -tunlp | gre

  • 我已经在RHEL7上安装了ES 7.5和Kibana 7.5,但是在启动Kibana并检查UI之后,我看到了错误,“Kibana服务器还没有准备好。” 检查Kibana日志,我看到它没有正确连接到ES。感谢任何帮助! 以下是journalctl的输出——单位kibana: 弹性搜索。yml 基巴纳。yml 此外,当我在Kibana启动期间运行ss-tunlp|grep 5601时,我看到Kiban

  • 我正在尝试将MySQL数据库连接到XAMPP。每当我尝试在XAMPP上按start MySQL时,它都不会运行,我会得到一个错误: 这是因为我的病毒防护软件或VPN吗?我将如何更改MySQL和控制面板中的端口?如果有人能给我一些建议或指导我回答与此类似的已回答问题,将不胜感激。谢谢你。

  • gRPC HTTP/1.1 桥接的配置概述。 { "name": "grpc_http1_bridge", "config": {} } 返回 上一级