2016-09-14 6 views
6

मैं दायरे में एक नया हूं और आपको मेरी मदद करने के लिए कहता हूं।अद्यतन मॉडल दायरे स्विफ्ट

class UserModel: Object { 

    dynamic var email = "" 
    dynamic var facebook_id = "" 
    dynamic var google_id = "" 
    dynamic var id = 0 
    dynamic var name = "" 
    dynamic var photo = "" 
    dynamic var someinfo = "" 
    dynamic var twitter_id = "" 

} 

जब मैं अनुप्रयोग के लिए लॉग इन, मैं UserProfileController पर मेरी जानकारी देख सकते हैं: मैं मॉडल बनाया। इसके अलावा मेरे पास एक EditProfileController है जहां मैं अपने बारे में कुछ जानकारी बदल सकता हूं। तो जब मैं सफलतापूर्वक इसे बदलने, मैं अपने क्षेत्र मॉडल अद्यतन करते हैं, और यह करने के लिए कोशिश करना चाहता हूँ:

let realm = try! Realm() 

    try! realm.write { 
     realm.create(UserModel.self, value: ["name": self.editEmail.text!, "email": self.editEmail.text!], update: true) 
    } 

लेकिन दुर्भाग्य से मैं यह संदेश दिखाई दे:

''UserModel' does not have a primary key and can not be updated' 

क्या होगा यदि मैं कुछ अपडेट करना चाहते हैं एक ही समय में संपत्ति? क्या मैं प्राथमिक के साथ ऐसा कर सकता हूं? या ... प्राथमिक के बिना दायरे मॉडल को अपडेट करना कैसे संभव है?

उत्तर

6

इस update: true में समस्या झूठ है, यह तो यह काम करते हैं और हमेशा नई वस्तु बनाने जाएगा, स्वचालित रूप से वस्तु, अपने दायरे में ही प्राथमिक कुंजी है कि अगर आपके वस्तु प्राथमिक कुंजी नहीं है, को बदलने के लिए प्रयोग किया जाता है false को update सेट

+0

आपके उत्तर के लिए धन्यवाद! मैं 'सत्य' को 'झूठी' में बदलता हूं। और वह त्रुटि अब प्रकट नहीं होती है। लेकिन मेरा मॉडल अपडेट नहीं होता है ... – Roman

+0

यदि आप इसे नया बनाने के बजाय अपडेट करना चाहते हैं, तो आपको इसे प्राथमिक कुंजी देना होगा और सही पर अपडेट सेट करना होगा, या ऑब्जेक्ट लाएं और इसे पहले हटा दें, फिर नया ऑब्जेक्ट बनाएं, यह है थोड़े सारे काम करते हैं लेकिन यह है कि यह कैसे काम करता है – Tj3n

+0

मैं समझता हूं, आप। कृपया मुझे सुझाव दें! मैं एक ही समय में प्राइमरीकी के साथ एक से अधिक संपत्तियों को अपडेट कैसे कर सकता हूं? – Roman

0

आपको अपने UserModel के लिए प्राथमिक कुंजी सेट करने की आवश्यकता है।

https://realm.io/docs/swift/latest/#primary-keys

+0

ठीक से अपडेट नहीं करना है। लेकिन, अगर मैं एक ही समय में एक से अधिक संपत्ति अपडेट करना चाहता हूं तो क्या होगा? – Roman

+0

मैं शायद 'RealM' से 'UserModel' लाता हूं तो अपडेट करें। – wint

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