将解析后的数据提供给 RKMapperOperation 会抛出 NSUnknownKeyException

2023-12-07

请参阅我的其他问题了解背景:RestKit的动态映射能解决这个复杂的JSON映射吗?

由于服务器构造我需要转换成的 json 数据的方式NSManagedObjects,我传递解析后的 json 来执行直接对象映射,如下所示:

RKObjectMapping *mapping = [RKObjectMapping requestMapping];
[mapping addAttributeMappingsFromDictionary:@{@"id": @"id", @"name": @"name"}];
NSDictionary *mappingsDictionary = @{ [NSNull null]: mapping };
RKMapperOperation *mapper = [[RKMapperOperation alloc]
        initWithRepresentation:dataArray mappingsDictionary:mappingsDictionary];
NSError *mappingError = nil;
BOOL isMapped = [mapper execute:&mappingError];
if (isMapped && !mappingError) {
    for (id thing in mapper.mappingResult.array) {
        NSLog(@"Mapped the '%@' thing: %@", NSStringFromClass([thing class]), thing);
    }
}

NSMutableArray,dataArray,看起来像这样:[ {id: 1, "name":"AAA"}, {id: 2, "name":"BBB"}, ...]

代码打印出许多字典,但我想要的是从我的数据模型类生成的 Foo 对象(.id 和 .name)。

如果我使用:

RKEntityMapping *mapping = [RKEntityMapping mappingForEntityForName:@"Foo" inManagedObjectStore:store];

如果商店运行良好,并且在“正常”RestKit 请求上成功,我收到错误:

由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[ valueForUndefinedKey:]:实体(null)与键“id”的键值编码不兼容。”

我究竟做错了什么?

UPDATE:

根据韦恩的建议,我补充道:

RKManagedObjectMappingOperationDataSource *mappingDS = [[RKManagedObjectMappingOperationDataSource alloc] initWithManagedObjectContext:store.mainQueueManagedObjectContext cache:store.managedObjectCache];
mappingDS.operationQueue = [NSOperationQueue new];

在上面的代码之前,然后,在创建映射器之后,在调用之前execute,我按照建议设置数据源:

mapper.mappingOperationDataSource = mappingDS;

我得到了预期的结果NSManagedObjects.


映射器操作本身并不知道如何创建要映射到的类的实例。实体映射是正确的使用方法,但您需要教导映射器操作如何实例化实体映射Foo对象。为此,您需要创建一个RKManagedObjectMappingOperationDataSource并将其设置为mappingOperationDataSource.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将解析后的数据提供给 RKMapperOperation 会抛出 NSUnknownKeyException 的相关文章

  • 查找已用应用程序名称的捆绑包/开发人员

    我正在尝试将应用程序上传到应用程序商店并收到以下错误 很容易理解 The App Name you have entered has already been used 该应用程序不在 iTunes 上 有什么方法可以找出谁拥有该应用程序或
  • 以弯曲格式显示文本

    我正在寻找以曲线格式绘制一些文本 我使用哪个控件并不重要 UITextField UILabel or UITextView 我只想显示如图所示的文本 仍在寻找解决方案 请帮忙 查看此链接 https nodeload github com
  • 沙盒尝试恢复消耗性 IAP

    我一直在尝试在 iOS 上测试一些消耗性 IAP 但遇到了一个奇怪的错误 弹出一条警报 其中包含以下文本 此应用内购买已被购买 它将恢复为 自由的 环境 沙盒 我已经检查过 并且确定我的 IAP 可以在 iTunesConnect 中使用
  • 可以获取位置,但无法获取航向

    我目前只使用模拟器 但我在 iOS 模拟器上快速使用 CoreLocation 时遇到问题 我得到此代码打印的位置更新 但从未得到标题 我不想当然 我正在尝试制作一个指南针类型的应用程序 它将显示目标的方位 class CompassVie
  • iOS 视图控制器内存在被关闭后未释放

    当用户单击按钮时 它会显示一个带有两个视图控制器的新选项卡栏视图控制器 我是这样做的 ACLevelDownloadController dvc ACLevelDownloadController alloc initWithNibName
  • 在 IOS 上使用 AVComposition 混合两个音频文件

    我正在尝试混合两个音频文件 将一个音频文件放在另一个音频文件之上 不是缝合在一起 但我在 IOS 上学习 AVFoundation 时遇到了困难 我在这里遵循了这个答案 如何使用 AVMutableCompositionTrack 合并音频
  • 适用于 IOS 和 Android 的支付网关 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在开发一个应用程序 用户必须在澳大利亚餐馆通过应用程序 android ios 付款 有两种付款方式 通过 PayPal 或 Visa
  • UIDocumentInteractionController 阻止“打开方式”表中的空投

    在我的应用程序中 我允许用户通过 Instagram 分享照片 这需要使用 UIDocumentInteractionController 如果手机支持 则会自动检测空投 如何将其从 打开方式 操作表中删除 即使我使用 UIActivity
  • 如何在 iOS 中更改部分透明图像的颜色?

    我有一个具有部分透明度的单色图像 我有正常版本和 2X 版本的图像 我希望能够用代码将图像着色为不同的颜色 下面的代码适用于普通图像 但 2X 最终会出现伪影 正常图像可能有类似的问题如果是这样 由于分辨率的原因我无法检测到它 UIImag
  • 所需框架与静态库

    构建现代框架 https developer apple com videos play wwdc2014 416 says 每个应用程序都有自己的自定义框架副本 https stackoverflow com a 15262463 242
  • 使用 Interface Builder 创建 UIScrollView 的步骤

    我正在尝试使用 UIScrollView 但似乎有一些基本的事情我不理解 假设我想在我的 iPhone 应用程序中使用 UIScrollView 我有一个充满按钮的视图 尺寸为 320x700 显然 这对于 320x480 的 iPhone
  • 如何恢复消耗品应用内购买?

    我正在开发一款 iOS 游戏 用户可以通过应用内消耗品购买一定数量的内部货币 比如 1000 金币 如果用户想将余额从一台设备转移到另一台设备 如何恢复消耗品购买 在苹果的文档中 它说我们必须使用我们自己的服务器 但是如何获取用户的Appl
  • 以编程方式触发iOS摇动事件

    如何以编程方式触发 iOS 中的摇动事件 我尝试过以下方法 但它总是崩溃 void shake NSLog TEST UIMotionEventProxy m NSClassFromString UIMotionEvent alloc in
  • iOS:提高图像绘制速度

    我有一系列想要制作动画的图像 UIImageView支持一些基本的动画 但不足以满足我的需求 我的第一个方法是使用UIImageView并设置image当图像属性 这太慢了 速度慢的原因是图像的绘制 这让我感到惊讶 我以为瓶颈会加载图像 我
  • 个人帐户开发者之间的 Apple 开发/分发证书

    我一直在到处寻找有关处理证书的正确答案 想象一下以下帐户 Joe拥有个人 Apple 帐户 但他根本不会编码 他只是发布了该应用程序并将其称为自己的 Bob还有一个个人 Apple 帐户 Bob 是一位编码专家 Joe 付费让他开发他的第一
  • Google 地图 API -> OpenGLES 崩溃

    日志是从 Crashlytics 粘贴的 对于许多用户来说 崩溃经常发生 据我所知 它与设备 iOS 版本无关 我在我的代码中找不到任何错误 这似乎是纯粹的库问题 是 Google 地图 API 错误吗 我可以做些什么来修复它 或者我应该在
  • WhatsApp 显示警告“此项目无法共享。请选择其他项目。”对于 iOS 应用程序。

    我正在开发一个 iOS 应用程序 在该应用程序中 我有社交共享功能 并且社交共享功能使用深度链接来共享 URL 该网址共享对于所有应用程序都运行良好 除了WhatsApp 它会显示一个警报弹出窗口 此项目无法共享 请选择其他项目 以下是我的
  • git 提交错误:检测到大文件

    您好 我正在为 ios 8 1 开发一个应用程序 xcode 我已经使用 googleMaps 框架来实现自动完成功能 当我尝试在 Git 中推送我的项目时 我收到大文件检测错误 后来尝试使用 git lfs 并跟踪 git 检测到的文件
  • 为什么我的视图仍然以横向呈现?

    我的视图是由导航控制器控制的 因此我将导航控制器支持的方向设置为明确的纵向和纵向UpSideDown 这可以工作 但是如果调用视图时前一个视图处于横向状态 它将以横向方式呈现并保持横向状态 直到设备旋转 如何防止这种情况发生 这是我的代码
  • 如何反转 CGPath 的点顺序

    我想画一个圆圈 并用它打出字母 为此 我需要顺时针抚摸圆圈 逆时针抚摸字母 这一切都很好 但是当我使用 Core Text 获取字母路径时 我不知道如何从本质上反转该路径 不是镜像或旋转或任何东西 这很简单 我希望点笔画顺序是逆时针的 这实

随机推荐

  • PHPhotoLibrary请求授权,而不是请求

    为了进行测试 我试图重新创建系统 请求访问 弹出体验 Update iOS 11下 删除App后 系统弹窗会再次显示 上一个问题 应用程序第一次运行 并且only时间 系统弹出窗口 请求访问 在那之后 甚至不删除应用程序并重新启动设备将再次
  • 我们如何将浮动操作按钮放在任何布局之上

    我正在对浮动操作按钮进行一些操作 我有一个列表视图 并在屏幕底部显示谷歌广告 浮动操作按钮显示在同一位置 底部 末尾 所以操作按钮隐藏了广告 我想将浮动操作按钮移到广告线性布局上方一点 Please have a look the imag
  • ColdFusion 10 中的 PUT 请求问题

    在使用 API 时 我需要制作一个PUT对 URL 的请求以及一些参数需要作为 POST 参数传递 我在本地创建了 2 个文件 Calling cfm 和 caller cfm 来测试 cfhttpPUT要求 但每次都会抛出错误The re
  • Objective-C 中引用传递的使用

    查看 JSON Framework 源代码 它在许多解析器方法签名中大量使用了按引用传递 IE interface SBJsonParser BOOL scanValue NSObject o BOOL scanRestOfArray NS
  • jQuery.draggable() - 单击按钮时恢复

    我有一些可拖动的 可丢弃的我的页面上的元素 其中有accept特性 目前我的代码设置如下 answer answer draggable revert invalid snap graph graph graph droppable acc
  • 如何使循环计数器不大于最终值?

    所以示例循环 do i 1 1 print i enddo print i 给我2作为最终值i 如何在 Windows 上设置 Intel Fortran for Visual Studio 以获得最终值1 for i 这就是 Fortra
  • 如何在 bash 脚本中有条件地添加额外参数?

    有一个调用另一个程序的脚本 以下是program sh 它可能看起来毫无意义 但我省略了很多细节 假设我想坚持原样的结构 usr bin env bash function run this usr bin foo A B C run th
  • JSON 对象的 Java 表示

    我正在尝试反序列化以下字符串 我对java有点陌生 我无法让它在我的一生中工作 我现在只想解码对象中的两个字符串 下面是我的 JSON 和 Java 类 我得到的结果变量正常 result true recentlyMarkedTerrit
  • Ionic 2,在离子段中使用谷歌地图

    我有一个小问题 Google 地图未显示在 ionic 2 分段中 但显示在分段之外 我正在使用以下代码 div div div div div div 我尝试过以下解决方案但没有成功 在外部 div 上使用 100 的高度和宽度 在地图加
  • Mono 2.4、AutoHosting 和 MVC

    mod mono 的 AutoHosting 可以修改为支持 ASP NET 吗 ATM机实际上不起作用 Link 有效 但运行时完全忽略 Global asax 并且不遵循路由约定 Mono 中 AutoHosting 的目的是通过减少配
  • 在视图控制器之间使用委托传递数据,无需任何导航控制器连接

    有许多在两个视图控制器之间传递数据的示例 其中一个视图控制器导航到另一个视图控制器 但是是否可以使用自定义协议和委托在未通过导航控制器连接的视图控制器之间传递数据 因此 一个例子是 三个视图控制器是 A B C A导航到B and B导航到
  • BigQuery 不处理带有分区列的毫秒时间戳

    我有一个 unix 时间戳列 在我的 csv 文件中以毫秒表示 现在 当我在 bigQuery 表中插入这些数据并查询它时 我收到此错误 bigQuery 不支持毫秒时间戳 现在我想将此列作为分区列 我有几个问题 1 即使我将其保存为int
  • 使用 Discord.js 获取所有公会 ID

    所以我想从我的机器人所在的服务器获取每个 ID 请以最好的方式列出一个列表 这样我就可以得到一个又一个的 ID 因为我的前缀系统需要它们 我尝试了很多设计 但效果都不理想 您可以使用Collection map to map Client
  • d3JS:从 CSV 绘制线段

    在 d3Js 中 如何从 tsv 文件中绘制基本线段 假设文件在一行数据中声明 x1 y1 x2 y2 我想绘制两条线段 如下面的数据所示 x0 y0 x1 y1 weight 0 5 0 5 0 2 0 2 2 0 25 0 35 0 7
  • 使用 IDE 时从 Powershell 调用第 3 方可执行文件时出错

    我有一个使用 du exe 的 PowerShell 脚本 磁盘使用情况最初来自 Sysinternals 来计算目录的大小 如果我跑du c Backup在控制台中 它按预期工作 但在 ISE 或 PowerGui 中运行的同一行代码给出
  • 股票代码查找 API [已关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 是否有某种 API 只提供
  • 从 IOS 将图像发送到 asp.net Web 服务

    在我的 IOS 应用程序中 我需要将图像发送到 ASP NET Web 服务 我正在尝试以字节形式存储图像 然后在服务器端将其转换回图像形式 现在我正在使用这些行将图像转换为 IOS 中的字节 NSData imageData UIImag
  • C++ 中无法识别 foreach

    在我的 cs106b 书中 我们使用表达式 foreach 来遍历 Map 中的单词列表 我实现了代码 然后把头撞在墙上 面对神秘的错误 这是代码 void DisplayWordCounts Map
  • Electron 回调只能调用一次

    我有一个简单的电子应用程序 它包含一个提示输入用户名和密码的网络应用程序 问题 1 当用户输入错误的凭据并且authWindow再次出现时 使用正确的凭据 不会发生第二次登录 2 当用户两次输入错误的凭据时 authWindow不再出现 任
  • 将解析后的数据提供给 RKMapperOperation 会抛出 NSUnknownKeyException

    请参阅我的其他问题了解背景 RestKit的动态映射能解决这个复杂的JSON映射吗 由于服务器构造我需要转换成的 json 数据的方式NSManagedObjects 我传递解析后的 json 来执行直接对象映射 如下所示 RKObject