I have a Core Data application which I plan to update with a new schema. The lightweight migration seems to work, but it takes time proportional to the amount of data in the database. This occurs in the didFinishLaunchingWithOptions
phase of the app.
I want to avoid <app> failed to launch in time
problems, so I assume I cannot keep the migration in the didFinishLaunchingWithOptions
method.
I assume the best method would involve performing the migration in a background thread. I assume also that I'd need to defer loading of the main ViewController until the loading completes to avoid using the managedObjectContext
until initialization completes.
Does this make sense, and is there example code (maybe in Apple sample projects) of this sort of initialization?