MagicalRecord saveWithBlockAndWait在更新数据时不起作用

时间:2014-09-18 20:58:24

标签: ios core-data magicalrecord

我使用MagicalRecord v2.3.0 beta 3.我看到不推荐使用MR_contextForCurrentThread,建议使用saveWithBlockAndWait。所以我写了我的代码来更新这样一个项目:

[MagicalRecord saveWithBlockAndWait:^(NSManagedObjectContext *localContext) {
   Item *item = [Item MR_createEntityInContext:localContext];
   item.text = newText;
}];

但这不起作用。但是,saveWithBlockAndWait适用于插入和删除。

然后我必须使用MR_contextForCurrentThread来进行更新。

NSManagedObjectContext *localContext    = [NSManagedObjectContext MR_contextForCurrentThread];
Item *item = [Item MR_findFirstByAttribute:@"id" withValue:itemId];
item.text = newText;     
[localContext MR_saveToPersistentStoreAndWait];

有什么问题?

1 个答案:

答案 0 :(得分:0)

您写道,您希望更新,但您的代码将创建新实体进入当前上下文。

也许正确的代码可能是:

[MagicalRecord saveWithBlockAndWait:^(NSManagedObjectContext *localContext) {
   Item *item = [Item MR_findFirstByAttribute:@"id" withValue:itemId inContext:localContext];
   item.text = newText;
}];

此代码应更新itemID指定的实体。

祝你好运!