问题标签 [encodable]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
swift - 如何在 Swift Xcode 中编码 NSSet?
我知道在解码时该怎么做,如下所述,但是我将如何进行编码呢?
只需要查看weatherDetail: NSSet我删除了其他容器,因为示例不需要。
在这里我做错了,但想知道我怎么能解决这个问题。
swift - 将类编码为单个值而不是字典 swift
给定课程:
我想得到:
不是
这是默认设置。我知道我可以在 MasterClass 中抛出编码函数和 CodingKeys,但我还有 20 个其他变量,我应该添加 19 个额外的键。我可以在 ComplementApp 中实现这个实现 CodingKeys 吗?
swift - 具有通用属性的结构符合 Swift 中的 Encodable
我一直在寻找一种在结构中具有通用属性的方法,该属性在运行时定义类型,例如:
一个可能有用的简单用例是在构建json
对象时。Anode
可以是int
, string
, bool
, 数组等,但除了可以改变的类型之外,对象node
保持不变。
经过一番思考并使用失败protocols
(得到通常的protocol 'X' can only be used as a generic constraint because it has Self or associated type requirements
错误)后,我想出了 2 个不同的解决方案,#0 usingtype erasure
和 #1 using type-erasure
and generics
。
#0(类型擦除)
#1(类型擦除+泛型)
两种方法都给出了适当的结果:
即使结果相同,我坚信scalable
如果考虑到更多类型,方法#1 更适用,但是对于添加的每种类型,仍然需要在 2 个不同的区域进行更改。
我确信有更好的方法来实现这一点,但还没有找到它。很高兴听到有关它的任何想法或建议。
编辑 #0 2020/02/08:可选值
使用 Rob 的最佳答案,我现在尝试允许value
像这样可选:
此时,T
无法再推断,并抛出以下错误:
Optional
如果给定类型,我正在寻找一种可能性,使用 Rob 的答案给出以下结果value
:
编辑#1 2020/02/08:解决方案
好吧,我非常专注于给出我没有意识到没有任何类型导致推理错误的value
值。nil
nil
提供可选类型使其工作:
swift - 调用 Codable 编码函数的默认实现
给定班级:
我想调用编码函数的默认实现,但完整的情况是一个无限循环。我不想创建 CodingKeys,有什么办法吗?或者也许复制默认实现:/。
swift - Swift 可编码、可解码与可编码
在 Apple doc中发现,该Codable
协议由Encodable
和组成Decodable
。因此,
现在,假设我在下面的类中实现,
X
那么,类、Y
和之间是否有任何功能差异Z
?
如果没有尊重,为什么我们不能&
在 的地方使用,
?
swift - 类型需要符合 Encodable 协议,即使它已经是
错误:
实例方法 'encodeIfPresent(_:forKey:)' 要求 '[RelatedQuestions].Type' 符合 'Encodable'
我拥有的对象已经符合Codable
协议,但它仍然给我它不符合的错误。为什么?
这是符合的模型之一Codable
。
我清理了构建文件夹重新启动了 Xcode。同样的问题。我做错了什么??
ios - 使用 init 实例化 UIViewController(来自解码器:解码器)
我需要将用户创建的 ViewControllers 存储到一个 json 文件中,我需要稍后在同一设备或不同设备上重新创建它们。
ViewController 在情节提要中可用,但我无法在 init(来自解码器:解码器)函数中正确实例化它们。
这是要保存和恢复的 ViewController。
这是我从 json 文件加载控制器并尝试重新创建它的地方。
运行此代码,我收到以下错误:
据我了解,此错误是因为尚未从情节提要中加载控制器。
问题是如何在 init(from decoder: Decoder) 函数中从情节提要中正确初始化 ViewController?
swift - 如何在 Encodable(Swift) 中添加动态键名和值?
我有一个非常简单的要求:
我正在尝试将此请求添加为Encodable
. 现在,问题出现了,key
名称可以是“123”、“311”之类的任何东西,键的类型是String
,但它的名称是动态的。如何在 Encodable 中添加动态名称?
我尝试使用泛型,但没有奏效。有人知道吗?
ios - 使结构可编码的问题
我有Application
2 个变量的协议。而且我有component
一个结构,它有一个变量,它确认Application
协议。我需要将其保存struct
在磁盘中。所以我正在确认它的Codable
协议。这样做时,我遇到了这样的错误,
“协议类型‘应用程序’不能符合‘可解码’,因为只有具体类型才能符合协议”
这是我的代码,
我是 swift 新手,如果我遗漏了一些非常明显的东西,我很抱歉。我无法解决这个问题,我需要一些正确方向的帮助。先感谢您。
swift - 在 Swift 5 中解码枚举 - 这不可能这么难
在过去的 3-4 个小时里,我一直在尝试让这个愚蠢的东西正确解码这个枚举,现在对此感到非常沮丧!我有一个json
从 API 返回的字符串,如下所示:
我正在尝试将其映射到一个名为ContractType
. 这是我的整个ContractType
枚举
这是我的扩展,我试图使其符合Codable
协议。
我到底做错了什么!?任何帮助将不胜感激!