我有一个Player属性。我将它传递给另一个控制器。在这个控制器中我修改了播放器的属性。所以,当我回到以前的控制器。我可以看到玩家每个属性的所有新值。但是当我重新加载app时,控制器会向我显示播放器的第一个值。
我在这里创建我的播放器:
[MagicalRecord saveWithBlock:^(NSManagedObjectContext *localContext) {
Player *player = [Player MR_createInContext:localContext];
[player MR_importValuesForKeysWithObject:responseData];
} completion:^(BOOL success, NSError *error) {
}];
然后我获取已经创建的所有玩家并尝试通过'='
修改某些属性player.name = @"Alex";
但它仅适用于当前“正在运行”,正如我在重新加载应用时说的那样,名称的值在第一次创建时是相同的。
答案 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
但不确定是否仍然适用。我没有问题地使用它。