前提・実現したいこと
RealmSwiftで2段階の階層でデータベースを作りたのですがうまく作動しませんでした。
1段階の実装はできているのですが紐付けして2段回目を作成するにはどうすればいいのでしょうか。
発生している問題・エラーメッセージ
class AppDelegate: Thread 1: Exception: "Index 0 is out of bounds (must be less than 0)."
該当のソースコード
swift
1 2import UIKit 3import RealmSwift 4 5class Group: Object { 6 @objc dynamic var id = 0 7 @objc dynamic var name = "" 8 @objc dynamic var birthday = "" 9 let musicAlbum = List<MusicAlbum>() 10} 11 12class MusicAlbum: Object { 13 @objc dynamic var id = 0 14 @objc dynamic var category = 0 15 @objc dynamic var name = "" 16 @objc dynamic var releaseDay = "" 17 let music = List<Music>() 18} 19 20class Music: Object{ 21 @objc dynamic var id = 0 22 @objc dynamic var name = "" 23 @objc dynamic var lyric = "" 24} 25 26extension ViewController{ 27 28 let music1 = Music() 29 music1.id = 1 30 music1.name = "Music1" 31 music1.lyric = "" 32 33 let music2 = Music() 34 music2.id = 2 35 music2.name = "Music2" 36 music2.lyric = "" 37 38 let single1 = List<Music>() 39 single1.append(music1) 40 single1.append(music2) 41 42 let Single1 = MusicAlbum() 43 Single1.id = 1 44 Single1.name = "1stSingle" 45 Single1.releaseDay = "" 46 Single1.music.append(objectsIn: single1) 47 48 let Albums = List<MusicAlbum>() 49 Albums.append(Single1) 50 print(Albums) 51 52 let Group1 = Group() 53 Group1.id = 1 54 Group1.name = "Group1" 55 Group1.musicAlbum.append(objectsIn: Albums) 56} 57
試したこと
構造には問題がないと判断したのでprint(Albums)で確認をしたところ正常に記録されていました。おそらくRealmに読み込ませるときに落ちているのではないかと思います。もしこの場合で何故できないのかと、できる方法について有識者の方回答をお願いしたいです。
上記のコードそのものは問題なく実行できるようですが、具体的にどのような操作をした時に落ちてしまうのでしょうか。
上記のコードに「落ちてしまうときの処理」も追加していただいた方がいいかもしれません。
あなたの回答
tips
プレビュー