Учитывая следующий интерфейс:CoreData и MagicalRecord. Как я должен правильно обрабатывать данные только тогда, когда пользователь нажимает?
@interface Country : NSManagedObject
@property (nonatomic, retain) NSString * name;
@property (nonatomic, retain) NSNumber * isAggressive;
@end
У меня есть окно, в котором пользователь может увидеть список Countries
и переключать isAgressive
флаг. Параметры сохраняются только тогда, когда пользователь нажимает. У них также есть возможность удалять отмену.
Исходя из этого, я использую следующий код, чтобы загрузить все страны, когда экран нагрузки:
tempContext = [NSManagedObjectContext MR_context];
// Load our countries.
countries = [Country MR_findAllSortedBy: @"name"
ascending: YES
inContext: tempContext];
Я делаю это в tempContext
, а не контекст по умолчанию, так как я не хочу, чтобы эти объекты вмешиваться в что-либо другое.
Отмена, я не делаю ничего конкретного. Просто позвольте tempContext
покинуть область действия. Применяйте, я пытаюсь выполнить следующие действия:
// Save changes.
[MagicalRecord saveWithBlock: ^(NSManagedObjectContext * saveLocalContext)
{
[countries enumerateObjectsUsingBlock: ^(Country * country, NSUInteger countryIndex, BOOL * stop)
{
[country MR_inContext: saveLocalContext];
}];
} completion:^(BOOL success, NSError *error) {
NSLog(@"Completed: %@, %@.", success ? @"true" : @"false", error.localizedDescription);
//This is called when data is in the store, and is called on the main thread
}];
Это, однако, похоже, не вносит никаких изменений. При работе в отладке, я получаю следующие сообщения журнала:
[NSManagedObjectContext(MagicalSaves) MR_saveWithOptions:completion:](0x6000001dc020) NO CHANGES IN ** UNNAMED ** CONTEXT - NOT SAVING Completed: false, (null).
И мои обновления не сохраняются. Как правильно обрабатывать обновленные объекты и выполнять сохранение?
Покажите, как вы создаете контекст «темп». – Wain
Создание 'tempContext' находится в образце кода:' tempContext = [NSManagedObjectContext MR_context]; ' – Kyle