

JSONとCoreDataの連携について下記サイトのサンプルコード(Swift-3)を元にプログラムを書いています.  
<http://docs.fabo.io/swift/coredata/001_json.html>

[code]

    let wordDatas: Words = Words(entity: entity, insertInto: context)
    do {
         try wordDatas.updateFromDictionary(dataDictionary: jsonData as! [String : Any])
       } catch {
                print("Error updateFromDictionary:\(error)")
       }
    
[/code]

内容はJSONファイルを読み込みCoreDataへ保存するコードです.  
問題の箇所は上記の部分で,(サンプルより変数名等が違うだけのものですが)3行目のメソッド呼び出しの行でEXC_BAD_ACCESSが出て異常終了してしまいます.  
Wordsクラスの中身も(これも変数名が違うだけですが)下記に示しておきます.

[code]

    @objc(Words)
    public class Words: NSManagedObject {
        @NSManaged var id: NSNumber
        @NSManaged var english: String
        @NSManaged var japanese: String
        func updateFromDictionary(dataDictionary: [String: Any]) throws {
            // バリデーション.
            guard let tmp_id: NSNumber  = dataDictionary["id"] as? NSNumber,
                let tmp_english: String   = dataDictionary["english"] as? String,
                let tmp_japanese: String = dataDictionary["japanese"] as? String
    
                else{
                    throw NSError(domain: "Failed validation of JSON object. ", code: -1, userInfo: nil)
            }
    
            // データを反映.
            id = tmp_id
            english = tmp_english
            japanese = tmp_japanese
        }
    
    }
    
[/code]

jsonDataの中身はprintで確認した所,うまくJSONファイル内の1行目のテーブルを読み込めているようでした.  
EXC_BAD_ACCESSのよくある原因としては解放済みのオブジェクトへアクセスした場合などのようですが,インスタンスを生成した直後にも関わらずこのような現象が起きてしまい悩んでおります.


CC BY-SA 3.0
2016-12-18T11:22:57.237
31218
2016-12-18T11:22:57.237
13260
question
swift json swift3 database coredata
CoreData利用時のNSManagedObject内メソッド呼び出し時に起こるEXC_BAD_ACCESS