MagicalRecord сохраняет новые значения проблем со свойствами

У меня есть свойство Player. Я передаю его другому контроллеру. В этом контроллере я изменяю свойства игрока. Поэтому, когда я возвращаюсь к предыдущему контроллеру. Я вижу все новые значения каждого свойства игрока. Но когда я перезагружаю приложение, контроллер показывает мне первые значения игрока.

Я создаю свой плеер здесь:

[MagicalRecord saveWithBlock:^(NSManagedObjectContext *localContext) {

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


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

}];

Затем я получаю всех уже созданных игроков и пытаюсь изменить какое-то свойство через '='

player.name = @"Alex";

но это работает только для текущего «запуска», как я сказал, когда я перезагружаю приложение, значение имени такое же, когда оно было создано в первый раз.


person Matrosov Alexander    schedule 03.03.2014    source источник


Ответы (1)


Вам необходимо сохранить свойство после его редактирования. Сделайте что-нибудь вроде этого.

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]. Я где-то читал, что нельзя использовать MR_contextForCurrentThread в старой версии MagicalRecord, но не уверен, что это все еще применимо. Я использую его без проблем.

person Bot    schedule 03.03.2014
comment
Да, вы больше не хотите использовать contextForCurrentThread, потому что это не на 100% безопасно при использовании параллельных очередей GCD. - person casademora; 04.03.2014
comment
@Бот, спасибо. Я использую волшебные записи 2.0.8 и, похоже, у него нет метода saveToPersistentStoreAndWait. Я использую эту версию, потому что нет проблем с функцией импорта. - person Matrosov Alexander; 12.03.2014