- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
经过长时间的研究,我正在写这篇文章,但我真的很难找到解决我问题的最佳方法。
我对 resKit 和 CoreData 都很陌生......无论如何,我正在映射并保存我从 Web 服务接收到的 JSON 数据。
这里有一些代码:
//ResKit and Core Data initialization here
...
//Initialization RKObjectManager
RKObjectManager *objectManager = [RKObjectManager managerWithBaseURL:[NSURL URLWithString:@"http://http://www.myWebService.com"]];
objectManager.managedObjectStore = managedObjectStore;
[RKObjectManager setSharedManager:objectManager];
//Categories Mapping and descriptor
RKEntityMapping *categoriesMapping = [RKEntityMapping mappingForEntityForName:@"XNCategory" inManagedObjectStore:managedObjectStore];
[categoriesMapping addAttributeMappingsFromDictionary:@{
@"id": @"idCategory",
@"desc": @"desc",
@"idFam":@"idFam"}];
categoriesMapping.identificationAttributes = @[ @"idCategory" ];
RKResponseDescriptor *categoriesDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:categoriesMapping
method:RKRequestMethodGET pathPattern:@"getData.asp" keyPath:@"categories"
statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];
//Families Mapping and descriptor
RKEntityMapping *familiesMapping = [RKEntityMapping mappingForEntityForName:@"XNFamily" inManagedObjectStore:managedObjectStore];
[familiesMapping addAttributeMappingsFromDictionary:@{
@"id": @"idFam",
@"desc": @"desc"}];
familiesMapping.identificationAttributes = @[ @"idFam" ];
RKResponseDescriptor *familiesDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:familiesMapping
method:RKRequestMethodGET pathPattern:@"getData.asp" keyPath:@"families"
statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];
//Relation between the 2 mapping
NSEntityDescription *categoryEntity = [NSEntityDescription entityForName:@"XNCategory"
inManagedObjectContext:[managedObjectStore mainQueueManagedObjectContext]];
NSRelationshipDescription *userRelationshipFrom = [categoryEntity relationshipsByName][@"family"];
RKConnectionDescription *connectionUserMessageFrom = [[RKConnectionDescription alloc]
initWithRelationship:userRelationshipFrom attributes:@{ @"idFam": @"idFam" }];
[categoriesMapping addConnection:connectionUserMessageFrom];
//Finally add the descriptor to the object manager
[objectManager addResponseDescriptor:categoriesDescriptor];
[objectManager addResponseDescriptor:familiesDescriptor];
在另一个 View Controller 中,当我需要下载所有数据时,我只需:
[[RKObjectManager sharedManager] getObjectsAtPath:@"getData.asp" parameters:@{kAuthKeyName : kAuthKeyValue} success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
//Success block
}failure:^(RKObjectRequestOperation *operation, NSError *error) {
//Failure Block
}];
此代码正确下载并自动保存到 CoreData 中的持久存储中,保留实体之间的关系。
现在我的问题:有什么方法可以避免这种自动保存吗?因为我需要处理从 webService 检索到的数据,并且只有在我决定时才保存它们。
我发现这篇文章非常有用,或者至少给了我一个很好的开始研究的输入:Best practice for temporary objects in RestKit with Core Data ,但这是 2012 年的帖子,我不知道是否发生了变化,或者现在是否有更好的解决方案。
换句话说,我需要的是一种允许使用 ResKit 映射的方法,因此,所有接收到的数据都将正确地进行实体映射,尊重所有 NSRelationship 描述 我已经创建并手动管理该保存到持久存储。
非常感谢您的耐心和帮助。
最佳答案
一般来说,您链接到的答案仍然有效。 RestKit 没有添加对映射完成后不保存上下文的特殊支持(它仍然是自动完成的)。不过,RestKit 创建和管理 Core Data 的方式已经改变。您仍然可以在 Core Data 之外创建对象,然后在准备好保存时将它们映射到托管对象中。试图篡改由 RestKit 创建的 Core Data 设置可能会在 future (如果不是立即)导致您出现问题,并且维护 2 个不同的持久存储可能比在 Core Data 之外准备数据然后在准备好时将其导入更复杂节省。
关于ios - ResKit : temporary NSManagedObjects,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19133272/
今天想测试一下PostgreSQL 9.1的一个新特性,就是unlogged table,结果报如下Error,谁能帮帮我? mydb=> CREATE UNLOGGED table testu (a
struct F { private: int* data; public: F( int n ) { data = new int; *dat
我创建了几个中间件类,现在想根据一些真实的 View 来测试它们。由于我的应用程序不包含任何 View 或 url conf 本身,我想知道是否有一种方法可以临时创建 View 和 url 配置,仅用
我正在使用 Spark,我想知道:如何通过对表 A 和 B 执行 sql 查询来创建名为 C 的临时表? sqlContext .read.json(file_name_A) .creat
我最近重新安装了 ubuntu 20.04.3,在做了一些设置后,我现在在运行 apt update 时总是收到以下错误.我一定是不小心删除了某种缓存文件或目录,但我不知道如何诊断或解决这个问题。 任
我的 Magento 版本是 2.2.3。我们使用的是第二代 Google Cloud SQL 实例。 运行索引命令时遇到错误 General error: 1787 Statement violat
此代码用于使用早期的 g++ 版本进行编译,例如5.3.使用 10.2 我得到以下结果(使用编译器选项 -std=c++11) tmp1.cpp: In function ΓÇÿint main(in
有没有办法不使用临时“结果”来编写以下代码? result = func(); if(result == -1) return func2(); else return res
我创建一个临时 NSManagedObject 并将其与主 NSManagedObjectContext 关联。我需要能够将其视为上下文中功能齐全的对象(执行获取请求等),因此无法在没有关联上下文的情
我一直在努力争取在 Azure 中实现角色内的同地缓存(非专用)。 在我的 MVC WebApi 2 项目的 web.config 中: ...
我写了一个类来使用它作为一个方便的 View ,例如基于范围的for s。总的来说,它只是一对带有边界检查的迭代器: template class Range { private: I begin
在运行我的代码(使用 gfortran 编译)时,我收到 Fortran 运行时警告“创建了临时数组”,我想知道是否有更好的方法来解决此警告。 我原来的代码是这样的: allocate(flx_est
经过长时间的研究,我正在写这篇文章,但我真的很难找到解决我问题的最佳方法。 我对 resKit 和 CoreData 都很陌生......无论如何,我正在映射并保存我从 Web 服务接收到的 JSON
我需要在java spring应用程序中实现像临时存储这样的东西。例如,当事件发生时,我放了一个值,但同时这个类正在被另一个监听器类监听,并且一旦需要的值到达此存储,监听器就会调用某些操作。在java
如果你查看MySql临时表的官方文档: http://dev.mysql.com/doc/refman/5.1/en/internal-temporary-tables.html 给出的理由是:
这个问题有点棘手。我正在使用将结果插入 DOM 的第三方库。 示例: $('#puthere').thirdpartyplugin(); 这将调用 thirdpartyplugin 并操作 HTML
这个查询非常简单,我想做的就是获取给定类别中按 last_updated 字段排序的所有文章: SELECT `articles`.* FROM `articles`, `ar
我已经制作了这个 C++ 代码: std::string const & Operand::toString() const { std::ostringstream convert
MySQL 文档说:“您不能在同一个查询中多次引用一个临时表。” 我知道之前有人问过这个问题。但我找不到针对以下内容的具体解决方案。 我正在对临时表进行预选 CREATE TEMPORARY TABL
我对使用 git 比较陌生。 最近我们从 master 分支了 +-10 个功能分支。我们称它们为 A、B、C 等。 我想将这些全部 merge 在一起进行测试。如果我创建一个新分支并 merge 我
我是一名优秀的程序员,十分优秀!