在coredata和restkit中本地更新托管对象的属性

时间:2012-07-19 15:59:00

标签: objective-c ios core-data restkit

我15天以来一直在与RestKit斗争。一旦我从远程接收数据,我也希望能够在本地编辑属性并保存。

我尝试了几种不同的方法,但似乎都没有工作;

 user.attribute = @"new valuel";
[[[RKObjectManager sharedManager].objectStore managedObjectContextForCurrentThread] save:&error];

        if(error)       
             NSLog(@"Error saving %@", error);

第二种方法是将值分配给实例本身并保存;

user.attribute = @"new valuel";
[user.managedObjectContext save:&error ];
NSlog(@"%@", error)

另一次尝试,

[[RKObjectManager sharedManager].objectStore save:&error];

似乎我无法获得指向上下文的指针。如何获得指针或者可能是保存对象还是完全不可能?这些都不会保存到数据库中,也不会引发任何错误。这有什么问题?

1 个答案:

答案 0 :(得分:4)

我有同样的问题。我也尝试了你的步骤,然后用一堆firefox打开数据库,我可以检查数据库没有更新。

如果我到达任何最终解决方案,会告诉您......

更新:

我终于让我的代码工作了添加方法refreshObject:mergeChanges。最后我的代码是这样的:

   // Make changes in managedObjectYouWantToSave 
   [managedObjectYouWantToSave.managedObjectContext refreshObject:managedObjectYouWantToSave mergeChanges:YES];
   [managedObjectYouWantToSave.managedObjectContext save:&error];