gpt4 book ai didi

swift - 快速从类型转换为字符串,反之亦然

转载 作者:行者123 更新时间:2023-11-28 15:11:46 27 4
gpt4 key购买 nike

我有一个通用的响应序列化程序:

class ResponseArraySerializer<Element: Ball> {

}

有什么方法可以将其转换为字符串,以便我将该字符串存储在 Core Data 数据库中,然后再转换回来?通常我这样使用它:

let redBallSerializer = ResponseArraySerializer<RedBall>()
requestInfo.responseSerializer = redBallSerializer

所以我在从字符串初始化后要做同样的事情(这样当我只有类的字符串描述时我可以初始化对象)。可能吗?

最佳答案

This SO answer描述了如何使用字典将字符串映射到类。

您可以对存储的各种字符串执行相同的操作。但是,泛型有点难以管理。

首先,您需要制作一个ResponseArraySerializer 符合的Serializer 协议(protocol)。该协议(protocol)将具有所需的 init:

protocol Serializer {
init()
}

然后您必须向序列化程序添加所需的初始化程序以满足编译器:

required init() {}

最后,将映射创建为字典:

let serializerMapping: [String: Serializer.Type] = [
"redBallSerializer":ResponseArraySerializer<RedBall>.self
"greenBallSerializer":ResponseArraySerializer<GreenBall>.self
]

let serializerKey = "redBallSerializer"
let redBallSerializer = serializerMapping[serializerKey]!.init()

仅为泛型类型本身创建映射似乎行不通,因此您必须存储整个类。

关于swift - 快速从类型转换为字符串,反之亦然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47516163/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com