2015-03-04 6 views
5

रीयल डॉक का कहना है कि RLMResults चाटना NSArray है। मेरे पास डेटाबेस से कुछ परिणाम लौटाए गए हैं और मैं इसे RLMResults में विलय करना चाहता हूं। लेकिन ऐसा लगता है कि यह अपरिवर्तनीय है, RLMResults को अन्य RLMResults से ऑब्जेक्ट्स कैसे जोड़ें? या इसे परिवर्तनीय बनाओ? या इसे NSArray में परिवर्तित करें?आरएलएमआरसल्ट्स को कैसे परिवर्तनीय बनाने के लिए?

+0

अपने प्रश्न का उत्तर देने की कोशिश कर रहा है, और वास्तव में इस एपीआई डिजाइन से नफरत करना शुरू कर रहा है। आपको आरएलएमआरसल्ट को गठबंधन करने की आवश्यकता क्यों है? –

+0

@ मिलिस्मिथ मुझे आरएलएमआरसल्ट्स के साथ आरएलएमआरसल्ट्स को गठबंधन करने की आवश्यकता है। –

+0

क्या आप जो भी करने की कोशिश कर रहे हैं उसके बारे में अधिक जानकारी साझा कर सकते हैं? थोड़ा कोड नमूना अच्छा होगा। यह कुछ ऐसा हो सकता है जिसे हम उपयोग मामलों – yoshyosh

उत्तर

3

वर्तमान में ऐसा कुछ है जो आपको मैन्युअल रूप से करना होगा। आप अपने दो परिणामों को जोड़कर एक आरएलएमएआरएआर बना सकते हैं।

हम एक ही प्रकार के आरएलएम ऑब्जेक्ट्स के लिए रोडमैप पर एक संघ/विलय विधि को और नीचे चर्चा कर रहे हैं।

किसी भी बिट आप हमें उपयोग के मामलों को समझते हैं और संभावित रूप में लंबे समय के रूप में वे एक ही प्रकार के हैं एपीआई डिजाइन

प्रभाव में मदद मिलेगी साझा कर सकते हैं, यहाँ एक सामान्य उदाहरण

let currentTask = Task.objectsWhere("name = %@", "First task").firstObject() as Task 
let currentRecords = currentTask.records 
let arrayOfRecords = RLMArray(objectClassName: "Record") 

arrayOfRecords.addObjects(currentRecords) 

let futureTask = Task.objectsWhere("name = %@", "Future task").firstObject() as Task 
let futureRecords = futureTask.records 

arrayOfRecords.addObjects(futureRecords) 
+0

के आधार पर विचार कर सकते हैं क्या आप RLMResults ऑब्जेक्ट को RLMArray ऑब्जेक्ट में कनवर्ट करने के लिए कोड प्रदान कर सकते हैं? मैं यह नहीं समझ सकता कि यह कैसे करना है, और यह अनिवार्य रूप से ओपी के प्रश्न का उत्तर होगा। यह मेरे लिए अजीब लगता है कि RLMArray को तत्काल नहीं किया जा सकता है, क्योंकि आप मनमाने ढंग से किसी उदाहरण में ऑब्जेक्ट्स जोड़ सकते हैं। इसके अलावा, यह प्रश्न के दायरे से थोड़ा सा है, लेकिन आरएलएमआरसल्ट्स में, firstObject और lastObject होने का क्या उपयोग है? मुझे उनसे अन्य सामान प्राप्त करने का कोई तरीका नहीं मिल रहा है। ये शायद बेवकूफ सवाल हैं - मैं पुस्तकालय में नया हूं। –

+0

कोई समस्या नहीं, मैंने इसे शामिल करने के लिए अपना उदाहरण संपादित कर लिया है। इसे एक प्रकार के साथ तुरंत चालू किया जा सकता है। आप इसे तुरंत चालू करने की कोशिश कैसे कर रहे थे? यह सुनिश्चित नहीं है कि आखिरी सवाल क्या है, लेकिन मैं पहले ऑब्जेक्ट का उपयोग करता हूं जैसा कि आप ऊपर दिए गए उदाहरण में देखते हैं क्योंकि टास्क.बोजेक्ट्स ... जहां मैं केवल एक कार्य की तलाश कर रहा हूं, एक आरएलएम रिसेट्स लौटा दूंगा। आखिरी ऑब्जेक्ट का उपयोग तब किया जा सकता है जब आप अपने खोज मानदंडों के आधार पर जोड़े गए अंतिम कार्य को जानना चाहते हैं – yoshyosh

1

मुझे पता चला है duemunk से समाधान: func toArray<T>(ofType: T.Type) -> [T] { var array = [T]() for result in self { if let result = result as? T { array.append(result) } } return array }

: https://github.com/realm/realm-cocoa/issues/1046

असल में मैं [RLMObject] को RLMResults कन्वर्ट

let tracks = Track.allObjects().toArray(Track.self) // tracks is of type [Track]

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