У меня есть этот код, сохранить для меня город, я получаю от внутреннего интерфейса, и она работает идеально в первый раз:MagicalRecord не сохраняет данные после близкого применения от процесса
+ (void)saveCurrentCityWithParameters:(NSDictionary *)parameters
withSuccess:(OperationCompletionBlock)successBlock
withFailure:(OperationFailureBlock)failure
{
[MagicalRecord saveWithBlock:^(NSManagedObjectContext *localContext) {
KNCity *knCity = [KNCity MR_findFirstInContext:localContext];
if (!knCity)
{
knCity = [KNCity MR_createInContext:localContext];
}
knCity.city_id = [NSNumber integerString:parameters[@"id"]];
knCity.city_lat = [NSNumber doubleString:parameters[@"lat"]];
knCity.city_lng = [NSNumber doubleString:parameters[@"lng"]];
knCity.city_name = parameters[@"name"];
} completion:^(BOOL success, NSError *error) {
[KNFilterHelper disableAllFilters];
[self requestFiltersWithSuccess:successBlock
withFailure:failure];
}];
}
Второй раз он также работает идеально, но в случае, если приложение все еще работает, если я удаляю активный процесс, он не работает.
Должен ли я его сохранить?
Первый раз запустить:
(lldb) po localContext
<NSManagedObjectContext: 0x7a351150>
(lldb) po knCity
<KNCity: 0x78fbc960> (entity: KNCity; id: 0x78fb5340 <x-coredata:///KNCity/t2C6E56FF-7DD0-4505-A8A2-974EA687A87A3> ; data: {
"city_id" = 0;
"city_lat" = 0;
"city_lng" = 0;
"city_name" = nil;
})
После первого времени заполнения свойств
(lldb) po knCity
<KNCity: 0x78fbc960> (entity: KNCity; id: 0x78fb5340 <x-coredata:///KNCity/t2C6E56FF-7DD0-4505-A8A2-974EA687A87A3> ; data: {
"city_id" = 26;
"city_lat" = "51.151817";
"city_lng" = "71.480124";
"city_name" = "\U0410\U0441\U0442\U0430\U043d\U0430";
})
После изменения город:
(lldb) po localContext
<NSManagedObjectContext: 0x78f8a230>
(lldb) po knCity
<KNCity: 0x78fd37c0> (entity: KNCity; id: 0x78fc1110 <x-coredata://38CD5A19-1361-438E-8FFE-0DC5388B737C/KNCity/p1> ; data: <fault>)
Итак, я проверил ошибку, ноль, и успех - ДА. Какие детали вам нужны, на самом деле это всего лишь один метод здесь) –
Я добавил журнал, кажется, что запись имеет другой идентификатор, но я не могу понять почему? –
этот метод подходит для меня даже после удаления приложения из активного, он сохраняет для меня все изменения, + (void) saveInBackgroundWithBlock: (void (^) (NSManagedObjectContext * localContext)) завершение блока: (void (^) (void)) завершение __ атрибута __ ((устарело)); но он устарел. –