2017-03-07 7 views
0

私たちは新しいバージョンにアップデートしました。Swift:applicationWillTerminateの後にpersistentStoreCoordinatorを取得するとコアデータがクラッシュしました

新しいバージョンに新しい関数が追加され、その関数の新しいcoredataテーブルが追加されました。

アプリがリリースされた後、何も答えずにエラーが続きました。 誰かが同じエラーまたは同じ問題を解決し、このエラーを解決しましたか?

Thread 0 Crashed: 
0 libsystem_kernel.dylib    0x000000018981f014 __pthread_kill + 8 
1 libsystem_c.dylib     0x0000000189793400 abort + 140 
2 [AppName]       0x00000001002d0c58 AppDelegate.(persistentStoreCoordinator.getter).(closure #1) (AppDelegate.swift:318) 
3 [AppName]       0x00000001002c7dec AppDelegate.persistentStoreCoordinator.getter (AppDelegate.swift:334) 
4 [AppName]       0x00000001002d0cbc AppDelegate.(managedObjectContext.getter).(closure #1) (AppDelegate.swift:338) 
5 [AppName]       0x00000001002c8054 AppDelegate.managedObjectContext.getter (AppDelegate.swift:342) 
6 [AppName]       0x00000001002c8198 AppDelegate.saveContext() (AppDelegate.swift:347) 
7 [AppName]       0x00000001002c7780 AppDelegate.applicationWillTerminate() (AppDelegate.swift:295) 
8 [AppName]       0x00000001002c77d8 @objc AppDelegate.applicationWillTerminate() (AppDelegate.swift:0) 
9 UIKit        0x0000000190792704 <redacted> + 244 
10 UIKit        0x00000001909947cc <redacted> + 792 
11 UIKit        0x0000000190997fdc <redacted> + 292 
12 UIKit        0x0000000190989d50 <redacted> + 560 
13 UIKit        0x00000001906f90b4 <redacted> + 168 
14 CoreFoundation      0x000000018a7fe0c0 <redacted> + 32 
15 CoreFoundation      0x000000018a7fbcf0 <redacted> + 372 
16 CoreFoundation      0x000000018a7fc180 <redacted> + 1024 
17 CoreFoundation      0x000000018a72a2b8 CFRunLoopRunSpecific + 444 
18 GraphicsServices     0x000000018c1de198 GSEventRunModal + 180 
19 UIKit        0x00000001907717fc <redacted> + 684 
20 UIKit        0x000000019076c534 UIApplicationMain + 208 
21 [AppName]       0x00000001002d1a94 main (AppDelegate.swift:17) 
22 ???         0x000000018970d5b8 0x0 + 0 
+0

コアデータに新しいフィールド、エンティティを追加すると、以前のコアデータモデルが無効になり、常にクラッシュする可能性があります。あなたがアプリを削除して再インストールすればうまくいくはずです。 –

+0

スタックトレースは、変更を保存しようとしているときにアプリケーションがクラッシュすることを示しています。その他の有用な情報はありません。それが変更を保存しようとする唯一の時間ですか?あなたが他の時に救うとどうなりますか?スタックトレースのほかに、どのようなエラーメッセージが表示されますか? –

答えて

0

まず、誤ったコードを投稿する必要があります。 AppDelegateのゲッター(行番号はスタックトレースを参照)。

一般に、アプリケーションが終了するまで待つのは非常に時間がかかることがあります(iOS 4はそう思うので、iOSはそれらを維持しようとします)。ロジックをapplicationDidEnterBackgroundに転送することもできますが、アプリがクラッシュした場合には呼び出されないため、エラーが発生しやすくなります。

できるだけ頻繁にコンテキストを保存する必要があります(頻繁ではありません:-)。ビューコントローラが却下される度に

関連する問題