我现在已经在Core Data上挣扎了3天,而且我只是倒退了。我不得不从备份中恢复整个项目,现在我明白了:
2014-01-06 14:47:45.911 MyClub[1980:5003] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Can't merge models with two different entities named 'SuperGroups''
*** First throw call stack:
(
0 CoreFoundation 0x0000000101e70795 __exceptionPreprocess + 165
1 libobjc.A.dylib 0x0000000101bd3991 objc_exception_throw + 43
2 CoreData 0x00000001000fba1d +[NSManagedObjectModel modelByMergingModels:] + 3357
3 CoreData 0x00000001000b8e49 +[NSManagedObjectModel mergedModelFromBundles:] + 521
4 MyClub 0x0000000100008499 -[AppDelegate managedObjectModel] + 105
5 MyClub 0x00000001000085fa -[AppDelegate persistentStoreCoordinator] + 266
6 MyClub 0x000000010000836c -[AppDelegate managedObjectContext] + 92
7 MyClub 0x000000010000b112 __38-[MyDownloader populateSuperGroupList]_block_invoke + 1058
8 CFNetwork 0x000000010273240e __50-[__NSCFLocalDownloadTask _private_fileCompletion]_block_invoke227 + 83
9 Foundation 0x00000001017fc19b -[NSBlockOperation main] + 75
10 Foundation 0x000000010184a844 -[__NSOperationInternal _start:] + 623
11 Foundation 0x000000010184c71b __NSOQSchedule_f + 64
12 libdispatch.dylib 0x0000000102d4e6fd _dispatch_client_callout + 8
13 libdispatch.dylib 0x0000000102d3de37 _dispatch_queue_drain + 481
14 libdispatch.dylib 0x0000000102d3dbfc _dispatch_queue_invoke + 112
15 libdispatch.dylib 0x0000000102d3eb14 _dispatch_root_queue_drain + 257
16 libdispatch.dylib 0x0000000102d3ed65 _dispatch_worker_thread2 + 40
17 libsystem_pthread.dylib 0x00000001030f8ef8 _pthread_wqthread + 314
18 libsystem_pthread.dylib 0x00000001030fbfb9 start_wqthread + 13
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)
我该怎么办(除了在核心数据上大声宣誓,我已多次尝试过)?
答案 0 :(得分:1)
您的项目中似乎有两个托管对象模型(两者都有一个名为SuperGroups的实体)。尝试通过其URL加载特定的一个,或从项目中删除副本。
答案 1 :(得分:0)
每当您对Core Data的对象模型进行更改时,您必须确保在模拟器/手机上删除该应用程序。设备上的模型必须与代码中的模型匹配,否则您将收到错误。
有一个流程可以让您在技术上拥有两个单独的模型,这样当您说更新到应用程序商店时,您可以执行此操作,而无需用户删除所有数据。如果您需要这个,我会查看“核心数据版本控制”。