私は、このコアデータモデルを持っているに関係を挿入します。これは、それが起こる場所である(私はJSONデータを含む配列「値」からデータを読んでいる):適切な方法は、コアデータ
let boissonCave = BoissonCave(context: context)
[...]
if let _regionId = values["regionId"] as? Int16 {
let region = CoreDataStack.sharedInstance.getRegion(ofId: Int(_regionId))
boissonCave.fromRegion = region
}
は、私は別のエラーを取得しています、いずれかのCore Dataはときに私「地域」、またはをフェッチするときboissonCaveの領域から割り当てようとする。それはどちらか
EXC_BAD_ACCESS
'NSInvalidArgumentException', reason: '-[__NSCFSet addObject:]: attempt to insert nil'
あるいは*** Terminating app due to uncaught exception 'NSGenericException', reason: '*** Collection <__NSCFSet: 0x174259c80> was mutated while being enumerated.'
だ私は、これはコアデータが1つのコンテキスト内でリージョンをフェッチし、他にBoissonCaveを挿入しようとすると、コンテキストの問題、である疑いがありますか?これをどのように解決すればよいですか?
ありがとうございますが、 'if let'構文は' _regionId'がnilにならないようにしているので、問題ではないかもしれません。 –
2つのオプションを連鎖しています。 1つは辞書からの値です。それは辞書にそのような価値がないかもしれないので、常にオプションです。もう一方はそれを解析していますか? Int16もオプションです。 letはそれらのうちの1つだけを置き換えます。私はあなたのための迅速な遊び場のテストで私の答えを適応させます。 – Emptyless
あなたはどこに行くのか分かりません。私が間違っていると誰かが私を修正しますが、 'if let'構文は、' = 'の後の値が実際にはnilであれば、囲まれたコードが実行されるのを防ぎます。あなたの遊び場の例では、[そのために2番目の 'print'は決して実行されません](http://i.imgur.com/JoGejTA.png)です。あなたの 'dict'に' '文字列' 'を探しているのと同じです。何か不足していますか? –