Core Data Migration - бұл қарапайым көші-қон, ол қалай жасалуы керек?

Мен не істеп жатырмын:

Мен Core Data үшін өте жаңа болып табыламын және менің қолданымдағы бұл қолданбалы пайдалануым жақсы емес екенін түсіндім. Негізінде төрт түрлі жол сипаттары бар объектім бар. Дерекқормен жұмыс істеген сайын, төрт жолдың әрқайсысымен массивтерді айналып өтемін.

Енді мен не істегім келеді - осы объектке қосымша қасиеттер қосу. Әртүрлі сыныптарда дерекқорды пайдаланған сайын көп қайталауды үнемдеу үшін осы нысанға әдістерді қосатын болсам, жақсы болар еді.

Мәселен, ең жақсы әдіс (мен оны қалай жасағаным дұрыс деп ойладым) Xcode-ті осы объект үшін сынып жасау үшін пайдалану - бұл үшін онлайндағы көптеген оқулықтар бар. Осылайша, осы сыныптың жай-күйлерін тек массивтерді пайдаланғаннан әлдеқайда таза өтуге болар еді!


Қайда тоқтадым:

Ағымдағы негізгі деректер үлгісінен қосымша қасиеттері бар және тиісті сыныпқа көшудің оңай жолы бар ма? Сондай-ақ, көші-қон ретінде (бірінші + тегіне ат) бар сияқты, бар жолдардың бірін екіге бөлгім келеді.

Кіріктірілген көші-қон құралдарын пайдаланғаным жөн? Немесе жаңа дерекқордың үлгісін мүлдем жаңадан жасай аламын және ескі дерекқорды тексеретін реттелетін класс құра аламын, әрбір нысанды жаңа түрге айналдырып, сақтап қойдым ба? Бұл туралы не істеудің ең жақсы жолы болар еді - мен дерекқорларға/негізгі деректерге жаңа болғандықтан, мен мұны оңай не жақсы жолды табу үшін ғана бастауды қаламаймын.

0

2 жауаптар

Басқарылатын нысан үлгісінің бумасын жасауыңыз және тасымалдауды қосуыңыз керек. Бұл деректердің бірдей түрін алу үшін негізінен бірнеше дерекқор үлгісін жүктеуге мүмкіндік береді. Содан кейін басқарылатын нысан контекстінің бәрін көшіруге болады. Қосымша ақпарат алу үшін: http://www.timisted.net/blog/archive/ core-data-migration/.

1
қосылды
Спасибо, бұл блог - бұл алтын кеніш - мен осындай нәрсе іздеймін, бірақ оны таба алмады. Көңілділер
қосылды автор Jordan Smith, көзі

Бұл біздің моделіміз өте қарапайым сияқты көрінеді. Егер сіз істеп жатқан барлық нәрселер бар модельге бірнеше артық атрибуттарды қоссаңыз, жеңіл көші-қонды жасай аласыз. Бұл CoreData сізге тасымалдауды орындайтындығын білдіреді.

Do the following:
1. In Xcode, click on your model. it should have have the .xcdatamodeld extension. 2. Go to Editor->Model Version and add a new model, taking care to change the version. 3. Add the new attributes. 4. Make sure you add the new attributes to the relevant managed object subclasses. 5. in your Persistent Store Coordinator implementation, most likely in your app delegate. Make sure you add the option NSMigratePersistentStoresAutomaticallyOption. Your code should look something like this:

NSPersistentStoreCoordinator *psc=persistentStoreCoordinator;
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
                              [NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
                             [NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption,nil];
    NSError *error=nil;
    if (![psc addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:options error:&error]) {
           //handle errors
    }

Here are Apple's docs on lightweight migration http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CoreDataVersioning/Articles/vmLightweight.html

Сәттілік сәттілік1

0
қосылды