Ios MagicalRecord保存属性问题的新值

Ios MagicalRecord保存属性问题的新值,ios,core-data,magicalrecord,Ios,Core Data,Magicalrecord,我有一个玩家的财产。我将它传递给另一个控制器。在这个控制器中,我修改了播放器的属性。所以当我回到前一个控制器。我可以看到玩家每个属性的所有新值。但当我重新加载应用程序时,控制器会向我显示播放器的第一个值 我在这里创建我的播放器: [MagicalRecord saveWithBlock:^(NSManagedObjectContext *localContext) { Player *player = [Player MR_createInContext:localContext];

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

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

[MagicalRecord saveWithBlock:^(NSManagedObjectContext *localContext) {

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


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

}];
然后我获取所有已经创建的玩家,并尝试通过“=”修改某些属性

player.name = @"Alex";

但它只适用于当前的“运行”,正如我在重新加载应用程序时所说的,name的值在第一次创建时是相同的。

编辑属性后需要保存它。像这样做

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

[[NSManagedObjectContext MR_defaultContext] saveToPersistentStoreAndWait];

如果要使用本地版本或
[NSManagedObjectContext MR\u context ForCurrentThread]
,也可以使用
[NSManagedObjectContext MR\u defaultContext]
切换出
[NSManagedObjectContext MR\u contextForCurrentThread]
。我确实在某个地方读到,在旧版本的MagicalRecord中没有使用
MR_contextForCurrentThread
,但不确定这是否仍然适用。我正在使用它,没有问题。

是的,您不想再使用contextForCurrentThread,因为使用并行GCD队列时它不是100%安全的。@Bot谢谢。我使用的是Magic records 2.0.8,似乎还没有保存到PersistentStoreandWait方法。我使用这个版本是因为导入功能没有问题。