2012-07-01 19 views
5

मैं वर्तमान में दस्तावेज और वेब के माध्यम से देख रहा हूँ, लेकिन मैं नहीं दिखाई दे रहा मैं क्या देख रहा हूँ और मैं सिर्फ मैं क्या देख रहा हूँ से मौजूद है, तो :-)ios - कोर डाटा को अपडेट करने के रिकॉर्ड

पुष्टि करने के लिए चाहते हैं

NSManagedObject *newSoftware = [NSEntityDescription insertNewObjectForEntityForName: 

अब के समान एक पंक्ति है कि मुझे अद्यतन करने के लिए अनुमति देता है: - मैं यह समझ के रूप में कोड की इस पंक्ति मुझे SQLite डेटाबेस जो मैं कोर डेटा के माध्यम से अपने ऐप्लिकेशन में दिखाई हूँ करने के लिए एक रिकॉर्ड जोड़ने के लिए अनुमति देता है रिकॉर्ड मैं काम कर रहा हूँ?

ऐसा कुछ?

NSManagedObject *newSoftware = [NSEntityDescription updateCurrentObjectForEntityForName: 

आप प्रतिक्रिया :-)

उत्तर

8

यहां मेरा पिछला जवाब। यह समझने के लिए काफी विस्तृत है कि क्या हो रहा है।

How to update existing object in Core Data?

पर fumoboy007 टिप्पणी आधार पर आप अपने वस्तु गर्त KVC अद्यतन करने के लिए यदि आप अपने प्रबंधित वस्तु के लिए एक उपवर्ग सेट नहीं किया है। यदि आप पहले से ही इसे बनाने के लिए सुझाव नहीं दे रहे हैं। कोड अधिक क्लीनर जैसा दिखता है क्योंकि आप गुणों के माध्यम से प्रबंधित ऑब्जेक्ट को स्वीकार कर सकते हैं।

यहाँ यह पर एक लिंक:

organising-core-data-for-ios

+0

विस्तृत उत्तर के लिए धन्यवाद - मुझे यह काम मिल गया :-) –

+0

हाय, मुझे अभी भी एक प्रश्न है क्षमा करें आशा है कि आपको कोई फर्क नहीं पड़ता है :-) @ "शीर्षक ==% @", @ "कुछ शीर्षक" के बजाय ]; जैसे लिंक में आपने मुझे दिया है, मैं @ "name ==% @", self.appNameTxtFld.text] का उपयोग करता हूं; अब समस्या यह है कि सरणी में मेरी सभी जानकारी पंक्तियां केवल मेरे द्वारा चुने गए नहीं हैं। मैं अपने कार्यों में और अधिक विशिष्ट कैसे हो सकता हूं? –

+0

@JeffKranenburg क्षमा करें, मैं समझ नहीं पा रहा हूं, शायद आपके उत्तर में एक संपादन जोड़ें और इसे समझाएं। मैं आपकी सहायता करने की कोशिश करूँगा। धन्यवाद। –

11

के लिए बहुत-बहुत धन्यवाद एक रिकॉर्ड अपडेट करने के लिए, तो आप बस NSManagedObject के गुण अद्यतन करें। यदि आप CoreData का उपयोग कर रहे हैं, तो आपके प्रत्येक "टेबल" के लिए NSManagedObject s होना चाहिए। डेटाबेस पूछने के बाद किसी ऑब्जेक्ट का संदर्भ प्राप्त करें (NSFetchRequest का उपयोग करके)। फिर आप इस तरह के रिकॉर्ड को अपडेट कर सकते हैं: myObject.firstName = "John"; जब आप अपने स्क्लाइट डेटाबेस में ऑब्जेक्ट को अपडेट करने के लिए तैयार हों, तो बस अपने NSManagedContext की save विधि पर कॉल करें। मैं बेहतर समझने के लिए कोरडाटा नमूना ऐप (जैसे कि एक्सकोड द्वारा जेनरेट किया गया डिफ़ॉल्ट) के साथ खेलने का सुझाव देता हूं।

+2

नोट: 'myObject.firstName = @" जॉन ";' केवल यदि आप एक NSManagedObject उपवर्ग बनाया काम करता है। यदि आपने ऐसा नहीं किया है, तो आपको '[myObject setValue: @ "John" के लिए करना होगा: @ "firstName"] '। – fumoboy007

+1

मैंने सवाल पूछने से पहले यह सेट अप किया था, लेकिन रिकॉर्ड अपडेट करने के बजाय इसे एक नए के रूप में जोड़ा गया। –

+0

अच्छी तरह से कोड के साथ समझाया। – andyPaul

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