आपका कोड realm.objects(DataInfo.self).filter("IdInfo == %@", id)
एक Results<DataInfo>
(DataInfo की फ़िल्टर संग्रह) देता है,। परिणाम से DataInfo
प्राप्त करने के लिए आप scope.first!
पर कॉल कर सकते हैं।
static func getInfoById(id: String) -> DataInfo {
let realm = try! Realm()
let scope = realm.objects(DataInfo.self).filter("IdInfo == %@", id)
return scope.first!
}
हालांकि, मैं बल unwrapping के बाद से वहाँ कोई आइटम नहीं मिला हो सकता है, और एक दुर्घटना में एक शून्य मूल्य परिणाम बल unwrapping सलाह नहीं देते। इस प्रकार आप इसके बजाय DataInfo?
वापस कर सकते हैं।
static func getInfoById(id: String) -> DataInfo? {
let realm = try! Realm()
let scope = realm.objects(DataInfo.self).filter("IdInfo == %@", id)
return scope.first
}
वैकल्पिक रूप से, अगर आप स्पष्ट रूप से अपने क्षेत्र वस्तु उपवर्ग में कहा गया है IdInfo
अपने प्राथमिक कुंजी है, आप realm.object(ofType: DataInfo.type, forPrimaryKey: id)
बजाय उपयोग कर सकते हैं।
static func getInfoById(id: String) -> DataInfo? {
let realm = try! Realm()
return realm.object(ofType: DataInfo.self, forPrimaryKey: id)
}
पिछले कोड से पता चलता है की उम्मीद प्रकार DataInfo लिए परिणाम प्रकार 'वस्तु? "कनवर्ट नहीं कर सकता, मैं! DataInfo के रूप में उपयोग पार्स करने के लिए कर सकते हैं? – user1801745
मेरे बुरा, समारोह की वापसी प्रकार एक वैकल्पिक, यानी' DataInfo होना चाहिए? ' – chrisamanse
ठीक है, अब प्रकट होता है: 'डेटा इन्फ्लो टाइप करें कोई सदस्य प्रकार नहीं है' ... मुझे लगता है कि 'DataInfo.self' – user1801745