Realmで3D配列を作成したいが、これを達成するためにListを使用する。 これは私のRealmDatabaseのコードです:Realm Swiftの多次元配列
class Sensors : Object {
dynamic var type = ""
dynamic var name = ""
let buttonAr = List<buttons>()
}
class buttons: Object{
let buttonsAdded = List<objectNameTopic>()
}
class objectNameTopic: Object {
dynamic var name = ""
dynamic var topic = ""
}
そしてこれは、私はそれを呼び出すために使用するものである:
Results<Sensors> (
[0] Sensors {
type = topic1;
name = mike;
buttonAr = RLMArray <0x6100000fd900> (
[0] buttons {
buttonsAdded = RLMArray <0x6100000fdb00> (
[0] <Maximum depth exceeded>,
[1] <Maximum depth exceeded>
);
},
[1] buttons {
buttonsAdded = RLMArray <0x6180000fd180> (
[0] <Maximum depth exceeded>,
[1] <Maximum depth exceeded>
);
}
);
}
)
:私は結果を印刷するとき
var saving = Sensors()
var saving2 = objectNameTopic()
var but = buttons()
var array = ["on", "off"]
var array2 = ["1","2"]
var allSensors = useOfRealm.objects(Sensors.self)
override func viewDidLoad() {
super.viewDidLoad()
addSensor()
for i in 0...array.count-1 {
addSensor2(name: array[i], topic: array2[i])
}
if allSensors.count > 0 {
print(allSensors)
}
}
func addSensor() {
try! useOfRealm.write {
saving.type = "topic1"
saving.name = "mike"
useOfRealm.add(saving)
}
}
func addSensor2(name: String, topic: String) {
try! useOfRealm.write {
saving2.name = name
saving2.topic = topic
useOfRealm.add(saving2)
but.buttonsAdded.append(saving2)
saving.buttonAr.append(but)
}
}
これは私が得るものです
私は行方不明のアイデア?事前
「保存」と「保存」のインスタンスを1つだけインスタンス化し、それらを複数回再利用しています。それは問題の原因ではないかもしれませんが、Realmはオブジェクトデータベースなので、毎回新しいオブジェクトをインスタンス化する必要があります。同じことが 'but'にも当てはまるかもしれませんが、' Sensor'のリストプロパティではなく、なぜこれが存在するのかは明らかではありません。 – Michael
あなたは、数時間前にそれを見つけたのですが、私がDBを満たすためにしようとしていて、それが他のすべてを上書きしていたので、最後のアイテムだけを返しました。私はこのコードにこれらの変更をあわせて試み、何が起こるかを見てみよう。 –