前提・実現したいこと
配列を引数に渡してfor文で配列の中にある全データをRealmに保存したいです。
発生している問題・エラーメッセージ
一番最後の値のみ追加される
該当のソースコード
swift
1import Foundation 2import RealmSwift 3 4@objcMembers class DayScheduled: Object { 5 6 dynamic var date = String() 7 dynamic var plans = List<OneDayScheduled>() 8 9 // dateをプライマリキーに設定 10 override static func primaryKey() -> String? { 11 return "date" 12 } 13} 14 15@objcMembers class OneDayScheduled: Object { 16 17 dynamic var title = String() 18 dynamic var places = List<OneDayScheduledPlace>() 19 20 // titleをプライマリキーに設定 21 override static func primaryKey() -> String? { 22 return "title" 23 } 24} 25 26@objcMembers class OneDayScheduledPlace: Object { 27 dynamic var place = String() 28}
swift
1import Foundation 2import RealmSwift 3 4class RealmSys { 5 // Scheduled追加(idから) 6 func addScheduled(date: String = "", title: String = "", places: [String] = []) { 7 Realm.Configuration.defaultConfiguration = config 8 let dayscheduled:DayScheduled = DayScheduled() 9 let onedayscheduled:OneDayScheduled = OneDayScheduled() 10 let onedayscheduledplace:OneDayScheduledPlace = OneDayScheduledPlace() 11 try! realm.write { 12 if date != "" { 13 dayscheduled.date = date 14 } 15 if title != "" { 16 onedayscheduled.title = title 17 } 18 if !places.isEmpty { 19 for place in places { 20 onedayscheduledplace.place = place 21 onedayscheduled.places.append(onedayscheduledplace) 22 realm.add(onedayscheduled, update: true) 23 } 24 } 25 dayscheduled.plans.append(onedayscheduled) 26 realm.add(dayscheduled, update: true) 27 } 28 } 29}
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。