我目前在我的项目中与Codable种类型一起工作,面临一个问题.

struct Person: Codable
{
    var id: Any
}

上述代码中的id可以是StringInt.这就是为什么idAny型.

我知道Any不是Codable.

我需要知道的是我怎样才能让它工作.

推荐答案

Codable需要知道要转换到的类型.

首先,我将try 解决不知道类型的问题,看看您是否可以修复该问题并使其更简单.

我认为解决问题的方法只有下面的泛型.

struct Person<T> {
    var id: T
    var name: String
}

let person1 = Person<Int>(id: 1, name: "John")
let person2 = Person<String>(id: "two", name: "Steve")

Swift相关问答推荐

TabView中的视频播放器意外播放

如何将EnvironmentObject从UIKit视图控制器传递到SwiftUI视图

SWIFT计划计时器方法在时间间隔后未被调用

使用MKLocalSearch获取坐标

我可以为UIMenu设定一个固定的订单吗?

如何将新事例添加到枚举中?

SwiftUI 中的同一个 ForEach 中是否可以有 2 个数组?

如何在 SwiftUI 中获取视图的位置

SwiftUI View Builder 参数无法更改状态

在 SwiftUI 中操作绑定变量

在 Swift 中实现自定义异步序列

Swift在十进制格式中失go 精度

Swift 动画 WithDuration 语法是什么?

UITableViewCell 不显示 detailTextLabel.text - Swift

Type 应该采用什么协议来让泛型函数将任何数字类型作为 Swift 中的参数?

为什么'nil' 与 Swift 3 中的 'UnsafePointer' 不兼容?

快速覆盖属性

使用 DispatchTime.now() + float 延迟?

无法停止 AVPlayer

使用 ARAnchor 插入 node 和直接插入 node 有什么区别?