RestKit:你如何映射到 NSUUID?

Posted

技术标签:

【中文标题】RestKit:你如何映射到 NSUUID?【英文标题】:RestKit: How do you map to NSUUID? 【发布时间】:2015-07-21 14:14:22 【问题描述】:

我的 ios 应用正在使用 RestKit 来使用我控制的 rest api。我无法将 UUID 字段映射到本地模型对象的 NSUUID 属性,简称为 uuid。最初,我将 UUID 格式化为十六进制,并用连字符分隔,restkit 在意识到文档状态“由 NSUUID 创建的 UUID 符合 RFC 4122 第 4 版......”时给了我一个错误。所以我将格式更改为 RFC,但无济于事——错误如下。对此有什么想法,也许 RestKit 不支持 NSUUID 映射?如果是这样,您能否提供有关如何使用依赖于 AFNetworking 1.3.4 的 RestKit v0.24.1 的想法?

restkit.object_mapping:RKMappingOperation.m:682 将 keyPath 'uuid' 处的值转换为类型 'NSUUID' 的表示失败:错误域 = org.restkit.RKValueTransformers.ErrorDomain 代码 = 3002“值 '0189fbce661441f6812530785bcb9aef' 的转换失败”致 NSUUID:所咨询的 2 个值转换器都没有成功。”

【问题讨论】:

不支持NSUUID。您不能将值保留为字符串吗? 听起来……简单得多。 NSString 是。 【参考方案1】:

如果您想将值存储为NSUUID,那么您需要创建一个自定义值转换器来映射到该类和从该类映射。如果您的字符串正确遵循 UUID 格式,这不会很困难,因为 NSUUID 具有 initWithUUIDString:UUIDString 方法。

【讨论】:

是的,鉴于检索到的值确实遵循UUID格式,我将使用您提到的方法。【参考方案2】:

根据@***foe,只需将 UUID 存储为 NSString

【讨论】:

以上是关于RestKit:你如何映射到 NSUUID?的主要内容,如果未能解决你的问题,请参考以下文章

RestKit 对象映射:如何从键值映射到新对象/关系?

如何在restkit映射后和保存到实体之前清除旧实体?

RestKit映射成功后如何访问对象

Restkit如何将任意json(键可能会超时更改)映射到NSDictionary

如何使用带有 RKObjectMapping 的 RestKit 0.24 将本地 JSON 字符串映射到对象?

RestKit:当值无效时如何拒绝整个映射