Şimdi bunun oldukça basit olduğunu öğrendim - nereye bakacağınızı bildiğinizde.
AppDelegate'imde NSPersistentStoreCoordinator'ı kurdum - ve otomatik geçişi işlemesini söylemek için buna bazı seçenekler eklemeniz gerekiyor:
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
[NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];
NSError *error;
_persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel: [self managedObjectModel]];
if (![_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:options error:&error]) {
// Handle error
NSLog(@"Problem with PersistentStoreCoordinator: %@",error);
}
O zaman xCode'da küçük bir numara yapmanız gerekir:
- Xcdatamodel dosyanızı seçin
- En üstteki Tasarım Menüsünü seçin, ardından Veri Modeli'ni seçin ve ardından Model Sürümü Ekle'yi seçin
- Xcdatamodel dosyanız daha sonra xcdatamodel dosyanızla aynı ada sahip ancak xcdatamodeld uzantısına sahip yeni bir dizine taşınacaktır - bu dizinde adında 2 olan ikinci bir dosya olacaktır. Yeni dosyayı seçin ve ardından Tasarım-> Veri Modeli-> Mevcut Sürümü Ayarla ( Xcode 4'te bunu yaparsınız )
- Projenizin uyumsuz olmasına neden olan değişiklikleri zaten yaptıysanız - bu değişiklikleri orijinal xcdatamodel dosyasından çıkarın. Henüz değişiklikleri yapmadıysanız - o zaman 2.xcdatamodel dosyasını (az önce yaptığınız sürüm) düzenleyin.
- Şimdi bu sürümü eski modele sahip bir cihaza yüklediğinizde - bu modeli otomatik olarak yeni modele yükseltecektir.
Bu harika ve istediğim kadar basit görünüyor - ancak geliştirme sırasında bir modeli değiştirirken dikkatli olmanız gerektiğini düşünüyorum - aksi takdirde her değişiklik için yeni bir sürüm oluşturmanız gerekecektir.
Sanırım yapacağım şey, değiştirilen tüm dosyaları saklayacağım ve ardından güncellememi dağıtmaya hazırlandığımda aradaki tüm dosyaları silip en eski ve en son modellerle dağıtacağım.
GÜNCELLEME (15/07/2011):
@ Rockstarberlin'e Apple'da güncellenmiş belgeler olduğunu belirttiği için teşekkürler :
Xcode 4: Yönetilen Nesne Modelinin Mevcut Sürümünü Ayarlama
Güncelleme: 19.08.2013 daha iyi bağlantı:
https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/CoreDataVersioning/Articles/vmModelFormat.html