बैरी वार्क ने कहा, हमेशा याद रखें कि कोर डेटा एक ओआरएम नहीं है। शुद्ध SQL विवरण उपयोगकर्ता के संपर्क में नहीं आते हैं और प्रत्येक पंक्ति केवल एक वस्तु है। वैसे, आपको कभी-कभी "प्राथमिक कुंजी" तक पहुंचने की आवश्यकता होनी चाहिए, उदाहरण के लिए जब आपको बाहरी एसक्यूएल डेटाबेस के साथ कोर्डाटा डीबी को सिंक करने की आवश्यकता होती है (मेरे मामले में मुझे इसे किसी ऑब्जेक्ट की स्थिति बदलने के लिए कॉलबैक फ़ंक्शन में चाहिए रिमोट डीबी में सफलता के साथ)। इस मामले में, आप का उपयोग कर सकते हैं:
objectId=[[[myCoredataObject objectID] URIRepresentation] absoluteString]
कि इस तरह की स्ट्रिंग वापस आ जाएगी: एक्स-CoreData: // 76BA122F-0BF5-4D9D-AE3F-BD321271B004/वस्तु/p521 अद्वितीय करने के लिए CoreData द्वारा प्रयोग किया जाता है कि आईडी उस वस्तु की पहचान करें।
आपको लगता है कि विशिष्ट आईडी के साथ एक वस्तु वापस पाने के लिए करना चाहते हैं:
NSManagedObject *managedObject= [managedObjectContext objectWithID:[persistentStoreCoordinator managedObjectIDForURIRepresentation:[NSURL URLWithString:objectId]]];
एनबी: याद रखें कि यदि रिसीवर अभी तक CoreData संदर्भ में नहीं सहेज लिया गया है, वस्तु आईडी एक अस्थायी मान जो जाएगा जब ऑब्जेक्ट सहेजा जाता है तो बदलें।
मेरी इच्छा है कि मैं आपको 'कोर डेटा डेटाबेस नहीं' के लिए एक और प्लस दे सकता हूं। – Abizern
सामान्य उपयोग के मामले हैं जहां आपको किसी ऑब्जेक्ट को एक टेबल व्यू सेल चयन से डेटा आईडी से गुजरने की आवश्यकता होती है, एक विस्तार दृश्य नियंत्रक को दिमाग में आता है। आप ऑब्जेक्ट को ही पास कर सकते हैं, लेकिन अक्सर आप ऐसा नहीं करना चाहते हैं यदि आप विवरण वीसी में एक अलग संदर्भ का उपयोग कर रहे हैं। – memmons
@ माइकल: बिल्कुल। ऐसा करने के लिए सबसे अच्छा अभ्यास क्या है? – Noah