gpt4 book ai didi

ios - 我应该使用 NSCoder 序列化为 JSON 吗?

转载 作者:可可西里 更新时间:2023-11-01 04:02:03 24 4
gpt4 key购买 nike

SO 上有很多问题和答案,询问我如何在 objective-c 中序列化一个对象。

以下3种方法在上面的链接中都有提到。

1) 使用NSJSONSerialization 将对象序列化为JSON。看起来不错,但这要求所讨论的对象在其顶层是数组或字典。常见的解决方案是声明自定义 toDictionaryserialise 循环遍历属性并设置相关键和值的方法。

2) 符合 NSCoder 协议(protocol),有点像上面的方法,但是关于它是否可以序列化为 JSON 或仅序列化为 NSData 似乎存在一些混淆>.

3) 第三方库。

我对采用什么方法有点困惑。我想序列化为 JSON,有一些相互矛盾的答案,有些人说你可以使用 NSCoder,有些人说不能。我知道第三方应用程序可以工作,但我宁愿实现一些简单的操作,例如选项 1 或 2。

想法?

最佳答案

使用 1,您基本上是从头开始编写基于 JSON 的 NSCoder 实现。不过,当然可行。

对于 2,我相信这是可能的,因为我认为 NSCoder 的输出是 some variant of XML (尽管压缩成二进制 blob)。但是,我不知道这是否是一种好方法,因为该格式是专有的,并不是真正意义上的人工可编辑格式。在键和叶节点方面,JSON 与 NSCoder 格式之间可能存在不匹配,迫使您进行困惑的转换。

我一直在尝试做类似的事情,根据我的研究,我实际上建议 3。使用类似 Mantle 的东西— 一个稳定、完善的框架,经常更新 — 您可以准确指定您的模型对象将如何序列化为 JSON 和从 JSON 反序列化。它甚至支持 NSCoder 协议(protocol)作为一个选项! (这实际上是解决方案 1,但由第 3 方审查和维护。)

关于ios - 我应该使用 NSCoder 序列化为 JSON 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23496032/

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