应用更新后CoreData崩溃

我有一个非常讨厌的问题。 我有一个“CoreData”应用程序,目前正在生产,一切工作正常。 我有一个应用程序的更新,但每当更新安装在原来的应用程序的应用程序崩溃在下面的代码行的权利。

[_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error] 

我收到的错误是“不能使用提取属性描述(实体模型不匹配)的提取请求”。

CoreData模型已经发生了变化,但是我为我的更改创build了一个新的模型版本,所以它应该将更改合并到新模型中。 这是我做了一百次的同样的过程,总是有效的。 除了这个时候。

我能想到的唯一区别可能会导致这个问题,我从CoreData模型中删除了一些旧的提取请求,但是再次在更新后的模型版本中完成,而不是原始模型。

你们都有什么想法可能导致这个? 正如我所提到的,我更新了CoreData模型版本,并将其选作我当前的应用程序模型。 另外,更新之后,只有在您第一次运行应用程序时才会发生崩溃。 发生崩溃后,我可以重新启动应用程序,一切工作正常。

谢谢!

!**编辑**!

如果这有帮助,这是我的调用堆栈。

 Last Exception Backtrace: 0 CoreFoundation 0x32ac029e __exceptionPreprocess + 158 1 libobjc.A.dylib 0x3a95697a objc_exception_throw + 26 2 CoreFoundation 0x32ac01c0 +[NSException raise:format:] + 100 3 CoreData 0x328a2678 -[NSFetchedPropertyDescription setFetchRequest:] + 164 4 CoreData 0x328a2788 -[NSFetchedPropertyDescription _createCachesAndOptimizeState] + 76 5 CoreData 0x32899b0a -[NSEntityDescription(_NSInternalMethods) _createCachesAndOptimizeState] + 1238 6 CoreData 0x328d18a6 -[NSManagedObjectModel(_NSInternalMethods) _createCachesAndOptimizeState] + 702 7 CoreData 0x3284e534 -[NSManagedObjectModel(_NSInternalMethods) _setIsEditable:optimizationStyle:] + 272 8 CoreData 0x3284e2f2 -[NSPersistentStoreCoordinator initWithManagedObjectModel:] + 302 9 CoreData 0x32939c4c -[NSSQLiteInPlaceMigrationManager migrateStoreFromURL:type:options:withMappingModel:toDestinationURL:destinationType:destinationOptions:error:] + 692 10 CoreData 0x328da838 -[NSMigrationManager migrateStoreFromURL:type:options:withMappingModel:toDestinationURL:destinationType:destinationOptions:error:] + 512 11 CoreData 0x3292bc54 -[NSStoreMigrationPolicy(InternalMethods) migrateStoreAtURL:toURL:storeType:options:withManager:error:] + 276 12 CoreData 0x3292afa8 -[NSStoreMigrationPolicy migrateStoreAtURL:withManager:metadata:options:error:] + 84 13 CoreData 0x3292c4b2 -[NSStoreMigrationPolicy(InternalMethods) _gatherDataAndPerformMigration:] + 1930 14 CoreData 0x3284f384 -[NSPersistentStoreCoordinator addPersistentStoreWithType:configuration:URL:options:error:] + 3340 15 MSM iPad 0x001cb4c2 -[VS_CoreDataManager persistentStoreCoordinator] + 466 16 MSM iPad 0x001cbb12 -[VS_CoreDataManager initializeCoreDataWithProjectName:] + 94 17 MSM iPad 0x000b6678 -[AppDelegate application:didFinishLaunchingWithOptions:] (AppDelegate.m:117) 18 UIKit 0x34928ad4 -[UIApplication _handleDelegateCallbacksWithOptions:isSuspended:restoreState:] + 248 19 UIKit 0x3492865e -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 1186 20 UIKit 0x34920846 -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 694 21 UIKit 0x348c8c34 -[UIApplication handleEvent:withNewEvent:] + 1000 22 UIKit 0x348c86c8 -[UIApplication sendEvent:] + 68 23 UIKit 0x348c8116 _UIApplicationHandleEvent + 6150 24 GraphicsServices 0x365bc59e _PurpleEventCallback + 586 25 GraphicsServices 0x365bc1ce PurpleEventCallback + 30 26 CoreFoundation 0x32a9516e __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 30 27 CoreFoundation 0x32a95112 __CFRunLoopDoSource1 + 134 28 CoreFoundation 0x32a93f94 __CFRunLoopRun + 1380 29 CoreFoundation 0x32a06eb8 CFRunLoopRunSpecific + 352 30 CoreFoundation 0x32a06d44 CFRunLoopRunInMode + 100 31 UIKit 0x3491f480 -[UIApplication _run] + 664 32 UIKit 0x3491c2fc UIApplicationMain + 1116 33 MSM iPad 0x000b6432 main (main.m:17) 34 libdyld.dylib 0x3ad8db1c start + 0 

我发现我必须在应用程序更新后删除caching:

要么不caching提取的项目

  NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:nil cacheName:nil]; 

或者在更新时删除caching

 [NSFetchedResultsController deleteCacheWithName:@"Master"];