2016-07-12 16 views
5

Có thể lưu một mảng đối tượng vào Realm không? Bất cứ lúc nào tôi thực hiện một thay đổi cho mảng nó sẽ được lưu vào Realm.Lưu mảng thành lĩnh vực trong Swift?

Giải pháp hiện tại của tôi là lưu đối tượng cho đối tượng bằng for loop. Để thêm/sửa đổi các đối tượng gọi save() sẽ thực hiện công việc, nhưng không phải khi tôi xóa một đối tượng khỏi nó.

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

Điểm của 'RealmDatabase' là gì? Bạn có thể truy vấn cơ sở dữ liệu trực tiếp bằng cách sử dụng 'realm.objects (CustomObject.self)'. – redent84

Trả lời

5

Để lưu danh sách đối tượng bạn phải sử dụng một Realm List, không phải là một mảng Swift.

let objects = List<CustomObject>() 

Sau đó, bạn có thể thêm các yếu tố:

objects.append(object1) 

Hãy xem to many relationshipsCollections phần của the official docs.

+0

Tôi đã giải quyết nó bằng 'Kết quả '. – MJQZ1347

1

Swift 3

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

Và sau đó gọi hàm đi qua một loạt các lĩnh vực 'Object của:

saveRealmArray(myArray) 

Lưu ý: realm.add (đối tượng) có cú pháp tương tự của tiện ích cho một đối tượng duy nhất, nhưng nếu bạn kiểm tra với tự động hoàn thành, bạn sẽ thấy có: thêm (đối tượng: Trình tự)

Các vấn đề liên quan