2016-07-12 8 views
5

क्या ऑब्जेक्ट्स की सरणी Realm पर सहेजना संभव है? जब भी मैं सरणी में परिवर्तन करता हूं तो इसे रीयलम में सहेजा जाना चाहिए।स्विफ्ट में दायरे को दायरे में सहेजना?

मेरा वर्तमान समाधान ऑब्जेक्ट के लिए 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 docs की to many relationships और Collections वर्गों पर एक नजर डालें।

+0

मैंने इसे 'परिणाम <कस्टमऑब्जेक्ट>' के साथ हल किया। – MJQZ1347

1

स्विफ्ट 3

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

और फिर समारोह दायरे 'वस्तु की की एक सरणी गुजर फोन: realm.add (वस्तुओं) जोड़ने के एक ही वाक्य रचना है:

saveRealmArray(myArray) 

नोट एक ऑब्जेक्ट के लिए फ़ंक्शन करें, लेकिन यदि आप स्वत: पूर्णता के साथ जांचते हैं तो आप देखेंगे कि: जोड़ें (ऑब्जेक्ट्स: अनुक्रम)

संबंधित मुद्दे