如何超越 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 命名限制? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
Swift 4 或 Swift 5 中的 UITextView 用户输入文本验证:限制 Swift 中的特定字符