我和这个人度过了一个非常糟糕的夜晚。我一直在iOS 5.0上运行和测试我的代码,因为我必须快速更新..我有安装问题所以4.3直到最近我才能使用模拟器。我(我以为我)已经解决了所有轻量级Core Data迁移问题。今晚,我去了4.3模拟器和运行4.3的iPad上运行应用程序。我发现的很糟糕。
每次出现此错误:
2011-10-27 07:01:44.045 AppName [924:10d03] *终止应用程序 未捕获的异常'NSInvalidArgumentException',原因:'* - [NSCFDictionary initWithObjects:forKeys:count:]:尝试在对象[0]处插入nil值(键: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:configuration:URL:options:error:] + 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 _callInitializationDelegatesForURL:payload:suspended:] + 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 + 1550 23 CoreFoundation
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 main + 125 31 AppName
0x000022a5 start + 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)似乎没什么用,我没有从谷歌搜索得到任何好的信息。
在发生这种情况时,我没有更新现有应用只是尝试安装新应用。
我真的非常需要帮助,通常我知道该怎么做但我现在迷失在太空中。提前感谢任何见解。
编辑:认为它可能与修复磁盘权限有关。没工作。似乎映射模型有问题。我想这将是自动创建的,因为我没有创建任何。
答案 0 :(得分:3)
不是一个真正的答案,但您可以考虑尝试追踪问题:
调用时storeURL
和options
的值是否正确?
当您遇到崩溃时,迁移是否应该实际发生? (即,数据库处于预先当前模型状态)?当你从空数据库开始时,你得到了崩溃吗?
你有几个型号?你可以删除一些试图找出导致问题的原因吗?