将RestKit与ios 5核心数据并发一起使用时崩溃

将RestKit与ios 5核心数据并发一起使用时崩溃,ios,core-data,restkit,Ios,Core Data,Restkit,我还不熟悉核心数据RestKit 由于存在一些性能问题,我想在ios5中使用并发技术。然而,当它与RestKit结合时,出现了崩溃问题。这是我的崩溃代码: [[RKObjectManager sharedManager] getObjectsAtPath: HOT_PATH parameters: params success: ^(

我还不熟悉核心数据RestKit

由于存在一些性能问题,我想在ios5中使用并发技术。然而,当它与RestKit结合时,出现了崩溃问题。这是我的崩溃代码:

[[RKObjectManager sharedManager] getObjectsAtPath: HOT_PATH
                                       parameters: params
                                          success:
 ^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
    NSManagedObjectContext *newContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType];
     newContext.parentContext = [self managedContext];
     [newContext performBlock:^{

         Rumor *rumorInOtherContext = (Rumor *)[mappingResult.array lastObject];;
         Rumor *rumor = (Rumor *)[newContext objectWithID:rumorInOtherContext.objectID];

         rumor.updateDate = [NSDate date]; // <- crash at this point.
}];
[[RKObjectManager sharedManager]getObjectsAtPath:热路径
参数:params
成功:
^(RKObjectRequestOperation*操作,RKMappingResult*映射结果){
NSManagedObjectContext*newContext=[[NSManagedObjectContext alloc]initWithConcurrencyType:NSPrivateQueueConcurrencyType];
newContext.parentContext=[self-managedContext];
[newContext performBlock:^{
Rumor*rumorInOtherContext=(Rumor*)[mappingResult.array lastObject];;
Rumor*Rumor=(Rumor*)[newContext objectWithID:rumorInOtherContext.objectID];
rumor.updateDate=[NSDate];//
  • 您使用的iOS目标版本是什么
  • 您正在使用RK的哪个版本
  • 如果您的目标是5.x,则不能对核心数据或父子上下文使用基于块的并发编程代码。(是的,它们在5.x中被合并到iOS中,但在6.x之前,它不起作用且不安全)

    你可能想调查一下

    我对RK有很多问题,并决定离开RK,如本问题所述:


    stacktrace是什么(如果您在设备上遇到这种情况,将有一个崩溃日志,您可以从窗口->管理器->设备访问)告诉你什么时候崩溃?

    这是我代码的简化版本,以后的方法将成为一个性能问题,将消除UX。我现在改为iOS 6.1,但它不起作用。RK版本是0.20.0pre4。stacktrace显示崩溃点是
    rumor.updateDate=[NSDate日期]
    。你确定吗[self-managedContext]已设置(且不是打字错误)?请注销“rumor”变量,并确保确实从新上下文中获取了一个rumor对象。我非常确定。以下是日志:`2013-03-05 10:16:23.321 Rumorsay[39050:c07]parentContext=2013-03-05 10:16:23.321 Rumorsay[39050:4903]Rumorsay=(实体:rumor;id:0x7AEDD10;数据:)`
    [[RKObjectManager sharedManager] getObjectsAtPath: HOT_PATH
                                           parameters: params
                                              success:
     ^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
        Rumor *rumor = (Rumor *)[mappingResult.array lastObject];;
        rumor.updateDate = [NSDate date]; // <- save!
    }];