У меня странная проблема в моем приложении Core Data.
У меня есть три сущности в моем приложении, но сегодня я обнаружил проблему с одной из них . Моя проблемная сущность называется Счет-фактура
и имеет множество атрибутов, в том числе Продукты
. Он закодирован в NSArray NSDictionaries (через NSValueTransformer по умолчанию).
Все работает нормально - я создаю свой счет, его клиента, его продукты и т. Д. Все работает.
Но , когда я выбираю свой счет из списка а затем попробуйте отредактировать свои продукты и нажмите кнопку "Сохранить",мое сохранение работает только до тех пор, пока мое приложение не будет прекращено.
Проблема только с моим массивом products
- остальное (например, дата платежа, клиент и т. д.) сохраняется.
Что я делаю
] Я передаю свой объект Invoice
через
NSManagedObject *inv = [self.fetchedResultsController objectAtIndexPath:indexPath];
invoiceEditor.invoice = inv;
и сохраняю свои данные (в моем InvoiceEditor
VC):
[self.invoice setValue:client forKey:@"Client"] // NSDictionary;
[self.invoice setValue:products forKey:@"Products"] // NSArray of NSDictionaries;
[self.invoice setValue:pmDate forKey:@"PaymentDate"] // NSDate;
// other attributes
NSManagedObjectContext *context = self.invoice.managedObjectContext;
NSError *error = nil;
if (![context save:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
Все сохраняется, пока не будет прекращено: клиент, продукты, даты. Но только продукты «сбрасываются» после прекращения.
Кто-нибудь?