RestKit:创建一个对象而不保存它
Posted
技术标签:
【中文标题】RestKit:创建一个对象而不保存它【英文标题】:RestKit: create an object without saving it 【发布时间】:2014-08-21 10:01:23 【问题描述】:我有一个编辑“我的实体”控制器,我希望用户在其中对单元格进行更改,然后仅当用户点击“保存”按钮时才保存它。问题是,单元格是可重复使用的,所以我不能确定我的数据是否存储在其中。这就是为什么我想将它保存在某个地方,并且将所有属性从我的对象复制到控制器似乎不是一个好的模式。
我可以使用我已经用RestKit
实现的类来创建我的对象而不将它保存到Core Data 中吗?我找不到这样的方法。唯一的一个是:
[[MyObject alloc] initWithEntity:<#(NSEntityDescription *)#> insertIntoManagedObjectContext:<#(NSManagedObjectContext *)#>];
什么显然会保存到 Core Data 中:/。正确执行此操作的最佳方法是什么?
【问题讨论】:
嗨,你有没有设法正确解决这个问题?谢谢! @el-flor 是的,我使用的不是restkit,而是其他框架。事实上,我也从 Core Data 迁移走了。 FFMDB 在处理大型数据库时要快得多。无论如何,如果你指的是 Core Data 中的这种行为,我相当确信这是不可能的。 上帝,感谢您的鼓励 ;-) 太糟糕了。我会尝试找到方法。无论如何,谢谢! 【参考方案1】:您可以在另一个 NSManagedObjectContext 中创建对象。例如:
NSManagedObjectContext *tmpContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType];
tmpContext.parentContext = [RKManagedObjectStore defaultStore].mainQueueManagedObjectContext;
现在在tmpContext
中创建新对象。如果您想回滚更改,您只需调用
[tmpContext rollback];
或者保存:
[tmpContext save:&error];
【讨论】:
有点骇人听闻,但确实可以。感谢您的想法:)以上是关于RestKit:创建一个对象而不保存它的主要内容,如果未能解决你的问题,请参考以下文章
解决RestKit中的CoreData合并冲突,当一个上下文正在保存对象更新而另一个正在删除对象时
RestKit 2.0 删除 RKManagedObjectStore 但保留 NSManagedObjectModel
如何在 RestKit 中请求托管对象而不将其写回托管对象上下文?