मैं अपने ऐप अपग्रेड रिलीज यानी ऑब्जेक्ट मॉडल में ऑब्जेक्ट मॉडल में कुछ बदलाव कर रहा हूं। इकाइयों को जोड़ा/हटा दिया, नए गुण और रिश्ते। ऐसा लगता है कि काम वास्तव में उचित कोर डेटा माइग्रेशन के लिए जोड़ देगा। चूंकि डेटा ऑफ़लाइन ब्राउज़िंग अनुभव को बढ़ाने के लिए मुख्य रूप से कैश के रूप में कार्य करता है। इस बिंदु पर वास्तव में की आवश्यकता नहीं है माइग्रेशन मुझे लगता है कि यह बहुत आसान होगा अगर इसे अभी उड़ा दिया गया और फिर से बनाया गया।माइग्रेट करने के बजाय कोर डेटा लगातार स्टोर को हटाने (रीस्टकिट का उपयोग करके)
विभिन्न पदों मैं
- को इस विषय सामान्य रणनीति है पर का सामना करना पड़ा के आधार पर पता चलता है कि मॉडल
- हटाना (managedObjectContext की आरंभीकरण के दौरान अपवाद को पकड़ने के द्वारा) बदल गया है लगातार दुकान (आईओएस पर हमारे मामले SQLite फ़ाइल में)
- एक objectModel reinitialize के साथ नवीनतम स्कीमा नए मॉडल
इस कोड है कि objectModel
- (NSManagedObjectModel *)managedObjectModel {
if (managedObjectModel != nil) {
return managedObjectModel;
}
NSString *path = [[NSBundle mainBundle] pathForResource:@"<model name>" ofType:@"momd"];
NSURL *momURL = [NSURL fileURLWithPath:path];
managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:momURL];
return managedObjectModel;
}
और objectModel पुनः reinitializes और
objectManager = [RKObjectManager objectManagerWithBaseURL:
[NSString stringWithFormat:@"http://%@/v3",
[[NSBundle mainBundle] objectForInfoDictionaryKey:@"APIDomain"]]];
NSManagedObjectModel *objectModel = [self managedObjectModel];
objectManager.objectStore = [RKManagedObjectStore objectStoreWithStoreFilename:storeName usingSeedDatabaseName:nil managedObjectModel:objectModel delegate:nil];
हालांकि साथ की दुकान है, मैं निम्नलिखित त्रुटि मिलती है:
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '+entityForName: could not locate an NSManagedObjectModel for entity name 'UTCity''
मैं की तरह महसूस यह एक नया स्टोर बनाने में ऐप सफल होने के पुन: प्रारंभ करने के बाद से बहुत करीब है।
-PF
इसके साथ कोई भाग्य? – CharlieMezak