अद्यतन नहीं करता है मैं अपने ऐप के लिए बैकअप/पुनर्स्थापना प्रणाली विकसित कर रहा हूं जिसमें उपयोगकर्ता कोर डेटा स्टोर (एसक्लाइट फ़ाइल) का बैक-अप संस्करण डाउनलोड कर सकता है और प्रतिस्थापित कर सकता है डाउनलोड की गई फ़ाइल के साथ वर्तमान में उपयोग किया जाने वाला डेटा स्टोर। हालांकि, उपयोगकर्ता द्वारा फ़ाइल डाउनलोड करने और वर्तमान डेटा स्टोर को प्रतिस्थापित करने के बाद, कोई भी डेटा अपडेट नहीं किया गया प्रतीत होता है। लेकिन जब ऐप & फिर से लॉन्च किया जाता है, तो पुनर्स्थापित डेटा उपलब्ध होता है। कोर ऐप स्टोर की फ़ाइल को फिर से लोड करने के लिए मैं अपने ऐप को कैसे मजबूर कर सकता हूं?ऐप चल रहा है, जबकि कोर डेटा sqlite फ़ाइल को प्रतिस्थापित कर रहा है, डेटा
मैं अपने UIViewController जो डेटा पुनर्स्थापित करता है, तो तरह से एप्लिकेशन प्रतिनिधि का उपयोग करने की, कोर डेटा ढेर के पुनर्निर्माण और नेविगेशन ढेर सारे दृश्य नियंत्रकों के पार प्रचार की कोशिश की है:
MyAppDelegate *app = [[UIApplication sharedApplication] delegate];
app.managedObjectContext = nil;
app.persistentStoreCoordinator = nil;
app.managedObjectModel = nil;
managedObjectContext = [app managedObjectContext];
NSArray *controllers = [self.navigationController viewControllers];
UIViewController *c;
for (int i = 0; i < [controllers count]; i++) {
c = [controllers objectAtIndex:i];
[c setManagedObjectContext:managedObjectContext];
}
लेकिन इस काम नहीं कर रहा है, यह केवल निम्न त्रुटि फेंकता है जब मैं जड़ दृश्य नियंत्रक के लिए वापस जाओ: 'The NSManagedObject with ID:0x5d79060 <x-coredata://D8E73D64-C9BA-4CFA-9213-F8BD61749155/MyObject/p2> has been invalidated.'
किसी को भी कैसे डेटा को फिर से लोड और नए डेटा संग्रह फ़ाइल के साथ काम शुरू करने के लिए एप्लिकेशन के लिए मजबूर करने पता है?
आपके उत्तर के लिए धन्यवाद। यह बहुत अच्छा काम करता है। क्या आप जानते हैं कि इस स्थिति में संस्करण को कैसे संभालना है? मैंने SQL संस्करण को पुराने संस्करण के साथ बदलने की कोशिश की है, और यह मुझे "स्रोत स्टोर के लिए मॉडल नहीं ढूंढ सकता" त्रुटि देता है। –
आपको अपनी मॉडल फ़ाइल को स्पष्ट रूप से संस्करणित करने की आवश्यकता है। एक्सकोड में ऐसा करने के लिए टूल हैं - मौजूदा 'xcdatamodel' में मॉडल संस्करण जोड़ने का विकल्प देखें। – Tim