Core Data - вылетает при изменении базы данных на устройстве
У меня есть приложение, использующее Core Data, которое отлично работает на симуляторе, но вылетает на устройстве. Я просмотрел сообщения о копировании в библиотеку копии для чтения / записи файла sqlite из основного комплекта, но он все равно вылетает. Сбой при сохранении нового объекта или изменении существующего, но только на некоторых, но не на всех объектах (?!). Это нормально на симуляторе. Ошибка, которую я получаю после сохранения и всплытия объекта на контроллер представления делегата:
Завершение работы приложения из-за неисследованного исключения "NSInvalidArgumentException", причина: "Левая часть оператора ALL или ANY должна быть NSArray или NSSet".
Я добавил следующий код в AppDelegate, но без заметного эффекта:
NSString *dbPath = [[NSBundle mainBundle] pathForResource:@"BCP" ofType:@"sqlite"];
NSURL *storeURL = [NSURL fileURLWithPath:dbPath];
NSString *libraryPath = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) lastObject];
NSString *targetPath = [libraryPath stringByAppendingPathComponent:@"BCP.sqlite"];
if (![[NSFileManager defaultManager] fileExistsAtPath:targetPath]) {
// database doesn't exist in your library path... copy it from the bundle
NSError *error = nil;
if (![[NSFileManager defaultManager] copyItemAtPath:dbPath toPath:targetPath error:&error]) {
NSLog(@"Error: %@", error);
}
}