以下のような関係性のクラスを定義したとして、
class Team: Object { // チーム名 @objc dynamic var name : String = "" // 選手 var 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 }
起動すると同時に値をrealmに保存したとします。
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() //2回目このコメントアウト削除 //let teamData = realm.objects(Team.self) try! realm.write { realm.add(team) //2回目ここ変更 } } } 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 }
この場合、"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]
こちらのデータが保存されると思いますが、
チームを増やした場合、"Bulls2"という名前にしたとして、違う"players"データを保存したい時に
どのような定義をすれば良いのでしょうか?
簡単に説明すれば、チームそれぞれのデータを保存したいです。(Bullsでは"HIRO","CHIHIRO"."SHURI"のデータ Bulls2では"TOSHI","AKANE","TAKA")のデータなど
ご教示よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。