कभी-कभी हैकिंग के दौरान प्राथमिक कुंजी के वास्तविक इंट की आवश्यकता होती है। यहां बताया गया है कि कोई इसे कैसे पकड़ सकता है:
NSManagedObjectID *yourManagedObjectID = [yourManagedObject objectID];
int yourManagedObject_PK = [[[[[yourManagedObjectID URIRepresentation] absoluteString] lastPathComponent] substringFromIndex:1] intValue];
CoreData ऑब्जेक्ट ग्राफ होने के बावजूद, यदि कोई CoreData उत्पन्न SQLite डेटाबेस डेटा को देखता है, तो NSManagedObject की प्राथमिक कुंजी को हथियाने का यह तरीका कोई समस्या नहीं होनी चाहिए। ii ने एक ही कोड में CoreData और निम्न स्तर की sqlite3 C लाइब्रेरी का एक साथ उपयोग किया है और रिकॉर्ड प्राप्त करने के लिए CoreData से sqlite3 तक प्राथमिक कुंजी पास करना ठीक काम करता है।
! यदि आप उत्पादन में इस कोड का उपयोग करने का इरादा रखते हैं, तो dB प्राथमिक कुंजी को URIRepresentation में बदलने के संभावित आंतरिक परिवर्तनों से अवगत रहें, इससे आपका कोड टूट सकता है।
का आनंद लें