このような構成のコードを作成し実行すると
import UIKit import RealmSwift class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. let team = Team(value: [ "name" : "Bulls", "players" : [ ["name" : "HIRO", "height" : 163.0, "weight" : 60.5], ["name" : "CHIHIRO", "height" : 175.0, "weight" : 58.0], ["name" : "SHURI", "height" : 170.0, "weight" : 61.2] ] ]) let realm = try! Realm() try! realm.write { realm.add(team) } } } ///★★★ チームモデル ★★★ class Team: Object { // チーム名 @objc dynamic var name : String = "" // 選手 let players = List<Player>() //Playerモデルと1対Nの関係 } ///★★★ 選手モデル ★★★ class Player: Object { // 選手名 @objc dynamic var name : String = "" // 身長(単位:m) @objc dynamic var height : Double = 0.0 // 体重(単位:kg) @objc dynamic var weight : Double = 0.0 }
2回目の実行時チーム名"Bulls"を"Bulls2"に変更してみると
このようになると思います。
この際チームは「チーム追加ボタン」のようなもので増やせるとして、私は"Bulls"と"Bulls2"のようにチームが動的に増えていく場合に、"Bulls2"の値を更新する場合は
let teamData = realm.objects(Team.self) try! realm.write { //realm.add(team) teamData[1].players[1].name = "NAOTO" }
のようにすれば"Bulls"と"Bulls2"それぞれ個別の値を更新できると思うのですが、
個別にデータの追加をする場合はどのようにすれば良いのでしょうか?
"Bulls2"で言うと"HIRO","CHIRO","SHIRI"のheight,weightデータの次に"NAOTO"のheight,weightデータを追加したい場合などという場合です。
情報提供よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/10 05:39