我使用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];
有什么问题?
答案 0 :(得分:0)
您写道,您希望更新,但您的代码将创建新实体进入当前上下文。
也许正确的代码可能是:
[MagicalRecord saveWithBlockAndWait:^(NSManagedObjectContext *localContext) {
Item *item = [Item MR_findFirstByAttribute:@"id" withValue:itemId inContext:localContext];
item.text = newText;
}];
此代码应更新itemID指定的实体。
祝你好运!