MagicalRecord保存属性问题的新值

时间:2014-03-03 19:03:32

标签: ios core-data magicalrecord

我有一个Player属性。我将它传递给另一个控制器。在这个控制器中我修改了播放器的属性。所以,当我回到以前的控制器。我可以看到玩家每个属性的所有新值。但是当我重新加载app时,控制器会向我显示播放器的第一个值。

我在这里创建我的播放器:

[MagicalRecord saveWithBlock:^(NSManagedObjectContext *localContext) {

    Player *player = [Player MR_createInContext:localContext];
    [player MR_importValuesForKeysWithObject:responseData];


} completion:^(BOOL success, NSError *error) {

}];

然后我获取已经创建的所有玩家并尝试通过'='

修改某些属性
player.name = @"Alex";

但它仅适用于当前“正在运行”,正如我在重新加载应用时说的那样,名称的值在第一次创建时是相同的。

1 个答案:

答案 0 :(得分:0)

您需要在编辑后保存该属性。做这样的事。

Player *players = [Player MR_findAllInContext:[NSManagedObjectContext MR_defaultContext]];
for (Player *player in players) {
    player.name = @"modified name";
}

[[NSManagedObjectContext MR_defaultContext] saveToPersistentStoreAndWait];

如果您想使用本地版本或[NSManagedObjectContext MR_defaultContext],也可以使用[NSManagedObjectContext MR_context]切换[NSManagedObjectContext MR_contextForCurrentThread]。我确实读过某个地方不使用旧版MagicalRecord中的MR_contextForCurrentThread但不确定是否仍然适用。我没有问题地使用它。