- [NSCFDictionary initWithObjects:forKeys:count:]:尝试在对象[0]处插入nil值(key:sourceRelationship)

时间:2011-10-27 06:18:44

标签: core-data crash migration persistent-storage

我和这个人度过了一个非常糟糕的夜晚。我一直在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)似乎没什么用,我没有从谷歌搜索得到任何好的信息。

在发生这种情况时,我没有更新现有应用只是尝试安装新应用。

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

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

1 个答案:

答案 0 :(得分:3)

不是一个真正的答案,但您可以考虑尝试追踪问题:

  • 调用时storeURLoptions的值是否正确?

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

  • 你有几个型号?你可以删除一些试图找出导致问题的原因吗?