4

我在这个晚上度过了一个非常糟糕的夜晚。自从我不得不快速更新以来,我一直在 iOS 5.0 上运行和测试我的代码。我遇到了安装问题,所以直到最近我才可以使用 4.3 模拟器。我(以为我已经)解决了我所有的轻量级核心数据迁移问题。今晚,我在 4.3 模拟器和运行 4.3 的 iPad 上运行该应用程序。我发现的很糟糕。

每次都会出现这个错误:

2011-10-27 07:01:44.045 AppName[924:10d03] * 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“* -[NSCFDictionary initWithObjects:forKeys:count:]:尝试在对象处插入 nil 值[ 0](键:sourceRelationship)' *第一次抛出调用堆栈:(0 CoreFoundation 0x018655a9 exceptionPreprocess + 185 1 libobjc.A.dylib
0x01a66313 objc_exception_throw + 44 2 CoreFoundation
0x017aedcb -[__NSPlaceholderDictionary initWithObjects:forKeys:count:] + 587 3 CoreFoundation 0x017c76da +[NSDictionary dictionaryWithObject:forKey:] + 74 4 CoreData 0x0135bdea -[_NSSQLTableMigrationDescription appendStatementsToPrepareForMigration:migrationContext:] + 1178 5
CoreData 0x01357254 - [_ NSSQLiteStoreMigrator createEntityMigrationStatements] + 356 6 CoreData 0x01356246 - [_ NSSQLiteStoreMigrator performMigration:] + 86 7 CoreData 0x0135c78f - [NSSQLiteInPlaceMigrationManager migrateStoreFromURL:类型:选择:withMappingModel:toDestinationURL:destinationType:destinationOptions:错误:] + 1039 8 CoreData 0x013414ca - [ NSStoreMigrationPolicy(InternalMethods) migrateStoreAtURL:toURL:storeType:options:withManager:error:] + 154 9 CoreData 0x01342052 -[NSStoreMigrationPolicy migrateStoreAtURL:withManager:metadata:options:error:] + 146 10 CoreData 0x01342f83 - [NSStoreMigrationPolicy(InternalMethods)_gatherDataAndPerformMigration:] + 1315 11 CoreData 0x01256aec - [NSPersistentStoreCoordinator addPersistentStoreWithType:配置:URL:选择:错误:] + 2412 12 AppName的0x0007aae7 - [AppDelegate中persistentStoreCoordinator] + 791 13 AppName的0x0007a621 - [AppDelegate managedObjectContext] + 97 14 AppName 0x0007c3cd -[AppDelegate getSettings] + 125 15 AppName] + 2412 12 AppName 0x0007aae7 -[AppDelegate persistentStoreCoordinator] + 791 13 AppName 0x0007a621 -[AppDelegate managedObjectContext] + 97 14 AppName 0x0007c3cd -[AppDelegate getSettings] + 125 15 AppName] + 2412 12 AppName 0x0007aae7 -[AppDelegate persistentStoreCoordinator] + 791 13 AppName 0x0007a621 -[AppDelegate managedObjectContext] + 97 14 AppName 0x0007c3cd -[AppDelegate getSettings] + 125 15 AppName
0x00078160 - [bagappdelegate refreshsettings] + 48 16 appname 0x00077cd7 - [appdelegate应用程序:didfinishlaunchingwithoptions:] + 391 17 uikit 0x00409c89 - [Uiapplication _callinitializationdelegateforl:poyload:coyload:] + 1163 18 uikit 0x0040bd88 - [Uiapplication _runwithurl:payload:launchorientation:statusbarstyle: statusBarHidden:] + 439 19 UIKit 0x00416617 -[UIApplication handleEvent:withNewEvent:] + 1533 20 UIKit 0x0040eabf -[UIApplication sendEvent:] + 71 21 UIKit
0x00413f2e _UIApplicationHandleEvent + 7576 22 GraphicsServices
0x01f03992 PurpleEventCallback + 1
0x01846944 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION
+ 52 24的CoreFoundation 0x017a6cf7 __CFRunLoopDoSource1 + 215 25的CoreFoundation 0x017a3f83 __CFRunLoopRun + 979 26的CoreFoundation
0x017a3840 CFRunLoopRunSpecific + 208 27的CoreFoundation
0x017a3761 CFRunLoopRunInMode + 97 28的UIKit
0x0040b7d2 - [UIApplication的_run] + 623 29的UIKit
0x00417c93 UIApplicationMain + 1160 30 AppName
的0x0000232d主+ 125 31
应用程序名称 0x000022a5 开始 + 53

当我设置persistentStoreCoordinator时,它显示错误在这里:

NSError *error;
if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:options error:&error]) {
    // Update to handle the error appropriately.
    NSLog(@"App Delegate - persistentStoreCoordinator Save Error %@, %@", error, [error userInfo]);
    exit(-1);  // Fail
}  
return persistentStoreCoordinator;

我很确定后面的代码没问题——我从来没有遇到过任何问题。

该错误显然与轻量级迁移有关,对于我的生活,我无法弄清楚是什么。我已经坐在这里哭了好几个小时(但我是个女孩,所以没关系.. jk),似乎没有任何效果,而且我没有从谷歌搜索中获得任何好的信息。

我不是在更新现有的应用程序,只是在发生这种情况时尝试安装一个新的应用程序。

我真的非常需要帮助,通常我知道该怎么做,但我现在迷失在太空中。提前感谢您的任何见解。

编辑:认为这可能与修复磁盘权限有关。没用。似乎映射模型有问题。我想这将是自动创建的,因为我没有创建任何。

4

1 回答 1

3

不是真正的答案,但您可以考虑一些事情来尝试找出问题:

  • 调用时的值storeURL和值是否正确?options

  • 当您遇到崩溃时,是否应该实际发生迁移?(即,数据库是否处于当前模型状态)?当你从空数据库开始时你会崩溃吗?

  • 你有多少型号?您可以删除一些以尝试找出导致问题的原因吗?

于 2011-10-27T16:26:25.753 回答