2017-11-23 8 views
0

iOSでオフラインデータを保存するためにレルムDBを使用しています。 forループを使用せずに配列値をRealm DBに直接保存できますか?デフォルトでは配列値をレルムデータベースに保存

+0

なぜforループを使いたくないですか? – Sweeper

+0

レルム内のデータの保存方法をいくつか表示できますか? –

答えて

0

は、あなたこれを行うことができない、レルムは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) 
    } 
} 

通常、リストには、オブジェクト自体を追加する必要があり、オブジェクトのプロパティとしてだろう。

関連する問題