-1

私はこの入門チュートリアルをこのチュートリアルに従っていますが、Core Data はまったく初めてです。

エラーを生成するクラスは次のとおりです (ただし、エラーにより、sigabrt を使用して AppDelegate の最初の行に移動します。「let newUser」で始まる行は、エラーを生成するようです。コメントアウトするとエラーが消えるためです。

@IBAction func btnSave(){
    let appDel:AppDelegate = (UIApplication.shared().delegate as! AppDelegate)
    let context:NSManagedObjectContext = appDel.persistentContainer.viewContext
    let newUser = NSEntityDescription.insertNewObject(forEntityName: "Users", into: context) as NSManagedObject

    do {
        try context.save()
    } catch {}

    print("Object Saved.")    
}

この問題は似ていますが、答えは私にはわかりにくく、少し複雑すぎるようです

上記の Youtube ビデオのコメント セクションでこのエラーについてまだ誰も投稿していないので、これは Swift 3 の変更によるエラーだと思います (コメントに記載されている Swift 2 の変更による別のエラーがありました)。

どんな助けでも大歓迎です!

frame #0: 0x00000001067cbf06 libsystem_kernel.dylib`__pthread_kill + 10
frame #1: 0x00000001068ec4ec libsystem_pthread.dylib`pthread_kill + 90
frame #2: 0x000000010651e0b3 libsystem_c.dylib`abort + 129
frame #3: 0x00000001067ea43a libc++abi.dylib`abort_message + 266
frame #4: 0x000000010680ea9f libc++abi.dylib`default_terminate_handler() + 267
frame #5: 0x00000001055be59f libobjc.A.dylib`_objc_terminate() + 103
frame #6: 0x000000010680bc09 libc++abi.dylib`std::__terminate(void (*)()) + 8
frame #7: 0x000000010680b894 libc++abi.dylib`__cxa_rethrow + 99
frame #8: 0x00000001055be4b7 libobjc.A.dylib`objc_exception_rethrow + 40
frame #9: 0x00000001030f7bf1 CoreFoundation`CFRunLoopRunSpecific + 433
frame #10: 0x000000010850ea48 GraphicsServices`GSEventRunModal + 161
frame #11: 0x0000000103b30e8b UIKit`UIApplicationMain + 159
* frame #12: 0x0000000102b5dc6f CoreDataYoutube`main + 111 at AppDelegate.swift:5
frame #13: 0x00000001064726bd libdyld.dylib`start + 1
4

1 に答える 1

2

何がこの問題を解決したのか 100% はわかりませんが、.xcdatamodeld入力したエンティティと属性データがファイルに保存されていなかったのと同じくらい単純だったのかもしれません。 、ファイルを離れる前に明示的に保存(CMD + S)する必要がありました。そうしないと、プロジェクトナビゲーターからまたは他.xcdatamodeldの場所をクリックすると、データがすぐに消去されました。ViewController

これは私が使っているXcode 8.0のベータ版だけのエラーなのかわかりませんが、8.1にアップデートする時期が来ているようです...


8.1 にアップデートした後、上記の解決策は機能しなくなりました...


最終更新...なぜ問題が再発したのかわかりませんが、 を削除し.xcdatamodeldて新しいものを作成することで、同じ方法で解決しました。名前を から に変更したため、私も問題が発生しModel.xcdatamodeldましたCoreDataYoutube.xcdatamodeldAppDelegateこれを行う場合は、一致するように:の行を更新する必要があることを覚えておいてくださいlet container = NSPersistentContainer(name: "Model")

于 2016-09-23T19:04:34.093 に答える