से परिवर्तन साफ़ करें मैं आवेदन प्रतिनिधि स्तर पर NSManagedObjectContext
ऑब्जेक्ट को तुरंत चालू कर रहा हूं और इसे अपने सभी UIViewController
एस में साझा कर रहा हूं। यहाँ कोड है कि मैं अपने दृश्य नियंत्रकों में से एक में इसे उपयोग करने के लिए उपयोग:कोरडाटा: NSManagedObjectContext
NSManagedObjectContext *managedObjectContext = appDelegate.managedObjectContext;
modelObj = (Model *) [NSEntityDescription insertNewObjectForEntityForName:@"Model" inManagedObjectContext:[appDelegate managedObjectContext]];
अब इस स्क्रीन में, मैं एक UITableView
9 के साथ पंक्तियों & प्रत्येक कोशिका एक UITextField
है की है। चूंकि उपयोगकर्ता टेक्स्टफील्ड में मान इनपुट करता है, इसलिए मैं उन्हें modelObj
में असाइन करता हूं। अब, मेरे उपयोगकर्ता के पास सभी परिवर्तनों को रद्द करने और त्यागने या डिस्क पर सहेजने का विकल्प है। मेरे पास सेव कोड ठीक काम कर रहा है। लेकिन जब कोई उपयोगकर्ता परिवर्तनों को त्यागने का प्रयास करता है, तो मुझे यकीन नहीं है कि क्या करना है। उन्हें दूर फेंकने के लिए [managedObjectContext discardChanges]
विधि प्रतीत नहीं होती है।
मैं इस को हल करने के तरीके के एक जोड़े के बारे में सोच सकते हैं।
- प्रत्येक नियंत्रक के लिए प्रत्येक नियंत्रक के लिए
NSManagedObjectContext
का एक नया उदाहरण बनाएं। - या, मैं अपने कोड में
NSString
रों का एक समूह बना सकते हैं और उन में उपयोगकर्ता मान बचाने के लिए और फोनinsertNewObjectForEntityForName:
केवल यदि उपयोगकर्ता क्लिक बचा सकता है।
सही एक है? या NSManagedObjectConext
बनाने के लिए कोई तरीका है जो इसे किए गए सभी परिवर्तनों को त्यागें?
धन्यवाद,
तेजा।
टिम डीन का जवाब सही है। लेकिन यह इस संपादन स्क्रीन के लिए बाल संदर्भ बनाने का गलत दृष्टिकोण भी नहीं होगा, वहां अपनी नई वस्तु डालें, और उपयोगकर्ता द्वारा पुष्टि की जाने पर इसे केवल मूल संदर्भ में सहेज लें। अन्यथा, बस बच्चे को फेंक दें, और आप कर चुके हैं। –