4

私はこれでかなり悪い夜を過ごしています。すぐに更新する必要があったので、iOS 5.0 で自分のコードを実行してテストしていました。私は (私が思っていた) 軽量の Core Data 移行の問題をすべて解決しました。今夜、4.3 Simulator と 4.3 を実行している iPad でアプリを実行しました。私が見つけたものはひどいものでした。

毎回このエラー:

2011-10-27 07:01:44.045 AppName[924:10d03] * キャッチされない例外 'NSInvalidArgumentException' が原因でアプリを終了しています。理由: '* -[NSCFDictionary initWithObjects:forKeys:count:]: オブジェクトに nil 値を挿入しようとしています[ 0] (key: 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:type:options:withMappingModel:toDestinationURL:destinationType:destinationOptions:error:] + 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] + 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 application: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 + 2 1550
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 開始 + 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 に答える