如何超越 Swift 4 的 Var 命名限制? [复制]

Posted

技术标签:

【中文标题】如何超越 Swift 4 的 Var 命名限制? [复制]【英文标题】:How to surpass Swift 4's Var naming restrictions? [duplicate] 【发布时间】:2017-10-28 12:24:35 【问题描述】:

我有一个从 API 提取的 JSON 数据,其中一个键是 "24h_volume"

当我尝试将24h_volume 作为常量 放入我的Decodable struct 时,出现错误:

整数字面前缀后需要一个数字。

据我了解,Swift 语法不允许变量名称以数字开头。

克服这个限制并成功从源中提取数据的最简单方法是什么?

【问题讨论】:

有什么问题? Swift 属性不必与 JSON 字典键具有相同的名称。 当我在 Swift 4 中解码 JSON 时,它会将所有值分配给它们在类中的相对名称。因此,当我为类中的常量提供准确的名称时,我会从下载的数据中获取它们的值。 你没有告诉你正在使用 Swift 4 或 JSONDecoder ... 很抱歉,我在编辑时修复了它。 【参考方案1】:

您的问题不清楚,但如果您使用 Swift 4 JSON 解码支持,您可以为此定义一个自定义 CodingKeys 枚举。例如:

struct Data: Decodable 
    var volume24: String
    var xxx: String
    ...

    enum CodingKeys: String, CodingKey 
        case volume24 = “24h_volume”
        case xxx
        case ...
    

您必须为struct 中的每个属性定义一个case,否则JSONDecoder 将忽略它。

【讨论】:

这是我要找的,但是我的结构是可解码的? @sc13 没问题,效果一样 ;) 非常感谢!! @sc13 很好,很高兴为您提供帮助;)

以上是关于如何超越 Swift 4 的 Var 命名限制? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何声明命名查询超越 Hibernate 实体类?

如何超越 OpenSea Api 的限制?

Swift学习(3面向对象)

Swift 4 或 Swift 5 中的 UITextView 用户输入文本验证:限制 Swift 中的特定字符

在Swift中使用Google Calendar API时收到错误“超出未经身份验证的每日限制”

超越Objective-C,超越Swift