2016-07-12 2 views
5

オブジェクトの配列をRealmに保存することはできますか?配列に変更を加えるたびに、それをレルムに保存する必要があります。Swiftでレルムにアレイを保存しますか?

私の現在の解決策は、オブジェクトのオブジェクトをfor loopで保存することです。オブジェクトを追加/変更する場合は、save()を呼び出すとジョブは実行されますが、そのオブジェクトを削除するときは実行されません。

class CustomObject: Object { 
    dynamic var name = "" 
    dynamic var id = 0 

    override static func primaryKey() -> String? { 
    return "id" 
    } 
} 

struct RealmDatabase { 

    static var sharedInstance = RealmDatabase() 

    var realm: Realm! 

    let object0 = CustomObject() 
    let object1 = CustomObject() 

    var array = [object0, object1] 

    init() { 
     self.realm = try! Realm() 
    } 

    func save() { 

     for object in self.array { 
      try! self.realm.write { 
       self.realm.add(object, update: true) 
      } 
     } 
    } 

} 
+1

「RealmDatabase」のポイントは何ですか? 'realm.objects(CustomObject.self)'を使って直接データベースに問い合わせることができます。 – redent84

答えて

5

あなたはレルムList、ないスウィフトアレイを使用する必要がオブジェクトのリストを保存するには。

let objects = List<CustomObject>() 

その後、あなたは要素を追加することができます

objects.append(object1) 

the official docsto many relationshipsCollectionsセクションを見てみましょう。その後、

+0

「結果」で解決しました。 – MJQZ1347

1

スウィフト3

func saveRealmArray(_ objects: [Object]) { 
     let realm = try! Realm() 
     try! realm.write { 
      realm.add(objects) 
     } 
    } 

とレルム「オブジェクトの配列を渡す関数を呼び出す:

saveRealmArray(myArray) 

注:realm.add(オブジェクト)は、追加の同じ構文を持っていますあなたがオートコンプリートをチェックすると、add(objects:Sequence)が表示されます。

関連する問題