前提・実現したいこと
SwiftのRealmでモデルを1対多の多の方を増やしていきたいのですが、どのように処理したら良いのか困っております。
「多」の方は[追加ボタン]押下時にフォーム内の値を追加していきたいと思っております。
該当のソースコード
stock.swift
import Foundation import RealmSwift class myTotalStock: Object { @objc dynamic var ticker : String = "" @objc dynamic var totalSares : Int = 0 @objc dynamic var totalPrice : Double = 0.0 let trades = List<tradeHistory>() //売買履歴と1対多の関係 override static func primaryKey() -> String? { return "ticker" } } class tradeHistory: Object { @objc dynamic var tradeDate : String = "" @objc dynamic var tradeShares : Int = 0 @objc dynamic var tradePrice : Double = 0.0 }
ViewController.swift(ボタン押下Function部分)
//入力フィールド紐付け @IBOutlet weak var tickerField: UITextField! @IBOutlet weak var dateField: UITextField! @IBOutlet weak var shareField: UITextField! @IBOutlet weak var priceField: UITextField! @IBAction func searchBtn(_ sender: Any) { do{ let realm = try! Realm() //売買記録 let tradeStock = tradeHistory() tradeStock.tradeDate = dateField.text! tradeStock.tradeShares = Int(shareField.text!)! tradeStock.tradePrice = Double(priceField.text!)! //資産更新 let updateStock = myTotalStock() updateStock.ticker = tickerField.text! updateStock.totalSares = totalSares //値計算部分は省略しています updateStock.totalPrice = averageCost //値計算部分は省略しています updateStock.trades.append(tradeStock) try! realm.write { realm.add(updateStock, update: .all) } } catch { print("エラー内容") }
結果
「多」の方に追加がされず、データがただ上書きされるだけの状態となっております。
(上記図の①の数字が増えず、ずっと1のママです)
補足情報(言語/FW/ツール等のバージョンなど)
xcode 10.3
swift 5
Realm Swift 3.17.3
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/30 05:21