0
iOSでオフラインデータを保存するためにレルムDBを使用しています。 forループを使用せずに配列値をRealm DBに直接保存できますか?デフォルトでは配列値をレルムデータベースに保存
iOSでオフラインデータを保存するためにレルムDBを使用しています。 forループを使用せずに配列値をRealm DBに直接保存できますか?デフォルトでは配列値をレルムデータベースに保存
は、あなたはこれを行うことができない、レルムはLists使用しています:
リストに、多くの 関係を定義するために使用されるレルム内のコンテナタイプです。
リストはスウィフトの配列と同様に、 に格納されているオブジェクトの型によってパラメータ化されたジェネリック型です。
class MyObject: Object {
dynamic var name = "Default"
}
func listToArray() {
let objectsArray = [MyObject(), MyObject(), MyObject(), MyObject(), MyObject()]
var objectsRealmList = List<MyObject>()
objectsRealmList = objectsArray
}
あなたはレルムリストに配列を代入することはできません違法だろうobjectsRealmList = objectsArray
ような何かを考えている場合。
したがって、this answerで同じ論理として、あなたはobjectsArray
を反復処理する必要があります:
func arrayToList() {
let objectsArray = [MyObject(), MyObject(), MyObject(), MyObject(), MyObject()]
let objectsRealmList = List<MyObject>()
// this one is illegal
//objectsRealmList = objectsArray
for object in objectsArray {
objectsRealmList.append(object)
}
// storing the data...
let realm = try! Realm()
try! realm.write {
realm.add(objectsRealmList)
}
}
通常、リストには、オブジェクト自体を追加する必要があり、オブジェクトのプロパティとしてだろう。
なぜforループを使いたくないですか? – Sweeper
レルム内のデータの保存方法をいくつか表示できますか? –