- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 RestKit 开发一些待办事项列表应用程序。我面临一些关于在 iOS 中使用 CoreData 返回的 json 表单服务器的映射问题。
场景
以下是我正在使用的列表和任务实体的图像。
当有人将新任务添加到服务器上的列表时,我返回该特定列表的 Json:
`GET www.mydomain.com\api\list\1`
[ { "list" :
{ "listID" : "1",
"listName" : "New List ",
"listSyncStatus" : "1"
},
"tasks" : [ { "listID" : "1",
"taskCompletionStatus" : "1",
"taskID" : "24",
"taskName" : "Server Added 2",
"taskSyncStatus" : "1"
},
{ "listID" : "1",
"taskCompletionStatus" : "1",
"taskID" : "25",
"taskName" : "Server Added 3",
"taskSyncStatus" : "1"
},
{ "listID" : "1",
"taskCompletionStatus" : "1",
"taskID" : "23",
"taskName" : "Server Added",
"taskSyncStatus" : "1"
}
]
}
]
我对上述 json 的响应描述符如下:
RKResponseDescriptor *taskResponseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:taskEntityMapping
method:RKRequestMethodGET
pathPattern:@"/api/list/:id"
keyPath:@"tasks"
statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];
对于我的核心数据映射,我使用以下关系映射:
[taskEntityMapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"list"
toKeyPath:@"list"
withMapping:listEntityMapping]];
我的taskEntityMapping
如下:
NSDictionary *taskObjectMapping = @{
@"listID" : @"listID",
@"taskID" : @"taskID",
@"taskName" : @"taskName",
@"taskCompletionStatus" : @"taskCompletionStatus",
@"taskSyncStatus" : @"taskSyncStatus"
};
RKEntityMapping *taskEntityMapping = [RKEntityMapping mappingForEntityForName:@"Task" inManagedObjectStore:managedObjectStore];
[taskEntityMapping addAttributeMappingsFromDictionary:taskObjectMapping];
taskEntityMapping.identificationAttributes = @[ @"taskID" ];
和我的listEntityMapping
如下:
//ALL LISTS RELATED REQUESTS
NSDictionary *listObjectMapping = @{
@"listID" : @"listID",
@"listName" : @"listName",
@"listSyncStatus" : @"listSyncStatus",
};
RKEntityMapping *listEntityMapping = [RKEntityMapping mappingForEntityForName:@"List" inManagedObjectStore:managedObjectStore];
[listEntityMapping addAttributeMappingsFromDictionary:listObjectMapping];
listEntityMapping.identificationAttributes = @[ @"listID" ];
执行时我的应用程序崩溃并出现以下错误由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“预期字典表示”
请求日志如下:
2014-02-03 13:17:29.789 RKGist[984:70b] T restkit.network:RKObjectRequestOperation.m:178 GET 'http://mydomain.com/api/list/1':
request.headers={
Accept = "application/json";
"Accept-Language" = "en;q=1, fr;q=0.9, de;q=0.8, zh-Hans;q=0.7, zh-Hant;q=0.6, ja;q=0.5";
"User-Agent" = "RKGist/1.0 (iPhone Simulator; iOS 7.0.3; Scale/2.00)";
}
request.body=(null)
2014-02-03 13:17:30.670 RKGist[984:f03] T restkit.network:RKResponseMapperOperation.m:451 Mapping HTTP response to nil target object...
2014-02-03 13:17:30.670 RKGist[984:f03] D restkit.object_mapping:RKMapperOperation.m:377 Executing mapping operation for representation: (
{
list = {
listID = 1;
listName = "New List ";
listSyncStatus = 1;
};
tasks = (
{
listID = 1;
taskCompletionStatus = 1;
taskID = 24;
taskName = "Server Added 2";
taskSyncStatus = 1;
},
{
listID = 1;
taskCompletionStatus = 1;
taskID = 25;
taskName = "Server Added 3";
taskSyncStatus = 1;
},
{
listID = 1;
taskCompletionStatus = 1;
taskID = 23;
taskName = "Server Added";
taskSyncStatus = 1;
}
);
}
)
and targetObject: (null)
2014-02-03 13:17:30.671 RKGist[984:f03] T restkit.object_mapping:RKMapperOperation.m:320 Examining keyPath 'tasks' for mappable content...
2014-02-03 13:17:30.671 RKGist[984:f03] D restkit.object_mapping:RKMapperOperation.m:297 Found mappable collection at keyPath 'tasks': (
(
{
listID = 1;
taskCompletionStatus = 1;
taskID = 24;
taskName = "Server Added 2";
taskSyncStatus = 1;
},
{
listID = 1;
taskCompletionStatus = 1;
taskID = 25;
taskName = "Server Added 3";
taskSyncStatus = 1;
},
{
listID = 1;
taskCompletionStatus = 1;
taskID = 23;
taskName = "Server Added";
taskSyncStatus = 1;
}
)
)
日志显示在键路径 tasks
找到可映射集合。
任何人都可以指导我我在这里做错了什么。是我返回的json格式错误还是我的映射代码错误?
最佳答案
您的响应描述符使用 keyPath:@"tasks"
。这有效地“挖掘”了响应并忽略了 tasks
部分之外的任何内容。这意味着在映射期间您无权访问 list
部分。
将 addPropertyMapping:
与关系一起使用是为了嵌套映射 - 这不是您所拥有的。您实际上有 2 个单独的部分需要单独映射(因此,2 个响应描述符)以创建所有对象及其关联的 ID(以及连接对象的 ID)。然后,您需要使用外键映射来建立连接(使用 RKConnectionDescription
)。
要检查的一件事是返回的 JSON 是什么。看起来好像它可能是 1 个包含对象的大数组,这没有意义。如果它是一个数组,那么您将需要改变您的整个方法。它应该是具有多个键的 1 个对象...
关于ios - 使用 RestKIt 在核心数据实体中映射 json 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21522655/
Linux 有许多跨(假设是 2 个)CPU 内核执行的线程和进程。我希望我的单线程 C/C++ 应用程序成为 CPU0 上的唯一线程。我如何“移动”所有其他线程以使用 CPU1? 我知道我可以使用
我有一个类似于下图的数据库表 Table with 2 columns (UserId and value) 我将传递 UserId 和 2 个字符串。例如:userId: 1, key1: h1,
我想在我的新项目中使用 ASP.NET Core,因为我听说它更快。但是,该项目将使用广泛的数据库访问功能,Entity Framework Core 不支持其中一些功能。我想知道,是否可以使用 En
我已经使用 EntityFrameworkCore.SqlServer 2.0 开发了 asp .net core wep api 2.0 应用程序。它是使用数据库优先方法开发的。当尝试使用 dbco
我已经阅读了很多关于这个主题的文章,但我仍然无法处理这个问题。对不起,如果它是重复的,无论如何! 所以基本上,我正在从头开始构建一个 Angular 应用程序,并且我想按照最佳约定来组织我的代码。我有
我对MPI还是陌生的,所以如果这是一个琐碎的问题,请原谅我。我有一个四核CPU。我想运行一个在单个内核上使用两个进程的OpenMPI C++程序。有什么办法吗?如果是这样,那又如何?我提到了this
下面是一个传播异常处理机制的类问题,所需的输出是异常。任何人都可以解释为什么输出是异常,在此先感谢。 Class Question { public void m1() throws Excep
我想打印每个获得 CPU 时间片的进程的 name 和 pid。可能吗? 最佳答案 对于单个流程,您可以在以下位置获取此信息: /proc//stat 第14和第15个字段分别代表在用户态和内核态花费
我想知道是否可以识别具有特定 thread-id 的线程使用的物理处理器(核心)? 例如,我有一个多线程应用程序,它有两 (2) 个线程(例如,thread-id = 10 和 thread-id =
我有一个需要身份验证的 Solr 核心。假设我有一个用户,密码为password。当我现在尝试在控制台中创建一个 Solr 核心时 bin\solr create -c test 我收到 HTTP 错
我想为与使用它的项目不同的类库中的第二个和后续数据库创建迁移。有皱纹。我永远不会知道连接字符串,直到用户登录并且我可以从目录数据库 (saas) 中获取它。 对于目录数据库,我使用了来自 this 的
我想为一种可以产生 GHC Core 的简单语言创建一个前端。然后我想获取这个输出并通过正常的 GHC 管道运行它。根据this page , 不能直接通过 ghc 命令实现。我想知道是否有任何方法可
阅读文档,我构建了 2 个使用 BLE 连接 2 个 iDevices 的应用程序。 一个设备是中央设备,另一个是外围设备。 Central在寻找Peripheral,当找到它时,探索它的服务和特性,
在我的网络应用程序中,我对长时间运行的任务进行了操作,我想在后台调用此任务。因此,根据文档 .net core 3.1 Queued background tasks我为此使用这样的代码: publi
Solr 1.4 Enterprise Search Server 建议对核心副本进行大量更新,然后将其换成主核心。我正在按照以下步骤操作: 创建准备核心:http://localhost:8983/
它们是否存在,如果存在,文档和代码在哪里? 最佳答案 它们位于 Git 的 test 目录中。 https://github.com/jquery/jquery/tree/master/test 关于
我有一个 Lisp (SBCL 1.0.40.0.debian) 应用程序 (myfitnessdata),它使用以下代码来处理命令行参数: (:use :common-lisp) (:export
Core是GHC的中间语言。阅读Core可以帮助你更好地了解程序的性能。有人向我索要有关阅读 Core 的文档或教程,但我找不到太多。 有哪些文档可用于阅读 GHC Core? 这是我迄今为止发现的内
我有一个核心 WebJob 部署到 Azure Web 应用程序中。我正在使用WebJobs version 3.0.6 . 我注意到,WebJob 代码不会立即拾取对连接字符串和应用程序设置的更改(
我有一个在内部构造和使用 SqlConnection 类的第三方库。我可以从该类继承,但它有大量重载,到目前为止我一直无法找到合适的重载。我想要的是将参数附加到正在使用的连接字符串。 有没有办法在 .
我是一名优秀的程序员,十分优秀!