मेरा ऐप कोर डेटा (जादुई रिकॉर्ड की कुछ मदद के साथ) का उपयोग करता है और NSOperation
का उपयोग करके बहुत अधिक multithreaded है।कोर डेटा -existingObjectWithID: त्रुटि: त्रुटि 133000
बेशक मैं धागे/संचालन के बीच केवल NSManagedObjectID
पास करने के लिए बहुत सावधान हूं।
अब, वापस एक ऑपरेशन में इसी प्रबंधित वस्तु को पाने के लिए, मैं -existingObjectWithID:error:
इस प्रकार का उपयोग करें:
Collection *owner = (Collection *)[localContext existingObjectWithID:self.containerId error:&error];
लेकिन क्या मैं वापस पाने के नहीं के बराबर है और error
का कहना है कि यह एक त्रुटि # 13300 है: NSManagedObjectReferentialIntegrityError
।
यहाँ प्रलेखन इस त्रुटि के बारे कहते हैं:
NSManagedObjectReferentialIntegrityError
Error code to denote an attempt to fire a fault pointing to an object that does not exist.
The store is accessible, but the object corresponding to the fault cannot be found.
कौन सा मेरे मामले में सच नहीं है: उस वस्तु मौजूद है। दरअसल, अगर मैं Collection
इकाई के सभी उदाहरणों के माध्यम से NSFetchRequest
के साथ पुन: प्रयास करता हूं, तो मुझे यह पता चलता है, और इसके NSManagedObjectID
बिल्कुल मैं -existingObjectWithID:error:
पर गया हूं।
इसके अलावा, अगर मैं -objectWithID:
का उपयोग करता हूं, तो मुझे सही वस्तु वापस ठीक मिलती है।
तो कुछ ऐसा है जो मुझे याद आ रहा है। यहां कुछ अतिरिक्त अवलोकन/प्रश्न हैं:
- "एक वस्तु जो मौजूद नहीं है": उस वाक्य में "अस्तित्व" का क्या अर्थ है? "अस्तित्व" कहाँ है? यह उस बिंदु पर मेरे कोर डेटा स्टोर में निश्चित रूप से "मौजूद" है।
- "गलती से संबंधित वस्तु नहीं मिल सकती है": उस वाक्य में "पाया" का क्या अर्थ है? "पाया" कहाँ? यह निश्चित रूप से उस बिंदु पर मेरे कोर डेटा स्टोर में "पाया"।
तो शायद मुझे existingObjectWithID:error:
के बारे में कुछ याद आ रहा है? दस्तावेज़ीकरण कहता है:
If there is a managed object with the given ID already registered in the context, that object is returned directly; otherwise the corresponding object is faulted into the context.
[...]
Unlike objectWithID:, this method never returns a fault.
यह मेरी समस्या में मदद नहीं करता है। मुझे लगता है कि मेरी वस्तु पूरी तरह से दोषपूर्ण नहीं है, और कोई गलती नहीं है। वास्तव में, जब मैं ऑब्जेक्ट गुणों तक पहुंचता हूं तो इसके भीतर कोई भी गलती अगली कोड लाइन पर आग लग जाएगी।
- एक यथार्थवादी परिदृश्य क्या होगा
NSManagedObjectReferentialIntegrityError
?
किसी भी ज्ञान के लिए धन्यवाद।
क्या आपने कभी यह पता लगाया है? मुझे एक ही समस्या मिल रही है और मेरी वस्तु निश्चित रूप से वहां है और बचत अभियान चल रहा है, लेकिन यह केवल sporadically होता है। – Adam