У меня есть файл базы данных coreData, который работал отлично.Из-за некоторых особых требований я удалил старый файл модели данных и создал другой файл модели данных с точно такими же объектами . нет изменений в сущностях от предыдущей модели данных.Я сделал это частью другого пакета и ссылаюсь на него из этого пакета.
Код для создания managedObjectModel
if (managedObjectModel_ != nil) {
return managedObjectModel_;
}
NSBundle *newBundle = [NSBundle bundleWithURL:[[NSBundle mainBundle] URLForResource:@"dataBundle" withExtension:@"bundle"]];
NSString *modelPath = [newBundle pathForResource:@"DataHouse" ofType:@"momd"];
NSURL *modelURL = [NSURL fileURLWithPath:modelPath];
managedObjectModel_ = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
return managedObjectModel_;
Приложение работает нормально до некоторого времени, и внезапно (случайно) я получаю сообщение об ошибке
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Cannot create an NSPersistentStoreCoordinator with a nil model'
*** First throw call stack:`(0x62e052 0x26a9d0a 0xf6e86d 0x64fd 0x624e 0x381b 0x79c9b 0x65f2d 0x1881e0f 0x1882589 0x186ddfd 0x187c851 0x1827322 0x62fe72 0x160892d 0x1612827 0x1598fa7 0x159aea6 0x163437a 0x16341af 0x602966 0x602407 0x5657c0 0x564db4 0x564ccb 0x2791879 0x279193e 0x17e8a9b 0x28a2 0x2815)`
Код для создания координатора постоянного хранилища
if (persistentStoreCoordinator_ != nil) {
return persistentStoreCoordinator_;
}
NSURL *storeURL = [NSURL fileURLWithPath: [[self applicationDocumentsDirectory] stringByAppendingPathComponent: @"DataHouse.sqlite"]];
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
[NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];
NSError *error = nil;
persistentStoreCoordinator_ = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
if (![persistentStoreCoordinator_ addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
return persistentStoreCoordinator_;
Эта ошибка возникает в произвольной точке, но очень устойчива при каждом запуске приложения,Я совершенно сбит с толку и поражен этим моментом ... Я видел ту же проблему на форуме, но, думаю, у меня особый сценарий.Я почти уверен, что переменная modelPath , упомянутая в приведенном выше фрагменте кода, работает нормально каждый раз, когда я ее печатаю.
ПРИМЕЧАНИЕ: приведенные выше фрагменты кода не являются частью класса AppDelegate.Они являются частью специального класса, который содержит все методы Coredata