Swift CoreData 小テーブルオブジェクト生成
Swift CoreData 小テーブル作成の記事がほとんどなかったので記載
テーブル関係はこう
PlansがDaysを1対多でもっている
ポイントは days_re が一つの変数のように扱うところ。
NSSet にNSMutableArray はセットできない。CoreDataがObjective-Cで書かれているので仕方がない。
よってこれしかやりようがない。
//ボタン押下で子テーブルを入力値分作成 @IBAction func btn_registration(_ sender: Any) { let appDelegate = UIApplication.shared.delegate as! AppDelegate let context = appDelegate.persistentContainer.viewContext let plan = Plans(context: context) //小テーブルを入力値分 作る let num:Int! = Int(planDays!.text!) for _ in 0...num{ //小テーブルのインスタンスをcoredataで作成し let day = Days(context: context) //親planテーブルに追加する。 plan.days_re = plan.days_re?.adding(day) as NSSet? } plan.name = planName.text //開始日付を取得して保存 let date = Date() plan.start_date = date do { try context.save() }catch{ print(error) } //画面遷移 dismiss(animated: true, completion: nil) }