Problem
I have defined the problem in mode detail in one of my previous posts, its a small post and I would suggest having a read of it to better understand the problem. Anyway in a nutshell, I was working on my iOS app which used Core data, so I added an entity to my data model, deployed the app, it was saving and retrieving data and it was all working fine. Then I added another entity to my data model and then the app crashed. So then I was looking for a solution to why my app was crashing and what I can do to fix it.Core data migration in iOS app
Once again in a nutshell the solution involves performing what is called a lightweight migration and this video does a pretty good job of explaining how to add model versions. However it presents the solution in an app built using Objective-C and I was/am building my app using Swift. Now the solution presented in that video is pretty much the same for an app written using Swift, well everything except the last part where we ask our AppDelegate to automatically migrate persistent data stores. If the Xcode project for the app has been creating using Core Data, you will see the initialisation of persistentStoreCoordinator in the AppDelegate. In it there will be this lineif coordinator!.addPersistentStoreWithType(NSSQLiteStoreType, configuration: nil, URL: url, options: nil, error: &error)
As evident from the line above, the options being passed into it are nil (null), so we need to pass the following options to it.
var options: NSDictionary = [NSMigratePersistentStoresAutomaticallyOption: true, NSInferMappingModelAutomaticallyOption:true]
![]() |
| Have a look at the variable options of type NSDictionary and how it is used |

0 Comments