Итак, моя проблема заключалась в том, что я понятия не имел, куда идет этот постоянный код координатора магазина. Оказывается, он автоматически создается в вашей реализации AppDelegate
, когда вы проверяете «Использовать основные данные» при создании проекта.
Таким образом, из второго звена here, все, что вам нужно сделать для легкого переноса (добавление новых атрибутов и таких) является следующее:
- Выберите .xcdatamodeld
- Из меню , выберите «Редактор» -> Добавить версию модели
- Назовите новую версию, что угодно, выберите предыдущую версию в «Основано на модели»
- В Файловом инспекторе .xcdatamodeld выберите Model Version -> Current -> your new model версия
- Выберите новую версию модели внутри .xcdatamodeld в Project Navigator и внесите изменения в свою модель
- Если вы изменили имена или типы атрибутов, создайте модель сопоставления, новый файл -> Основные данные -> Модель сопоставления -> выбрать источник и модель назначения версии
- Обновления отображение в новой модели отображения
Изменить свой AppDelegate настойчивого код магазина координатора следующим образом.
lazy var persistentStoreCoordinator: NSPersistentStoreCoordinator? = {
var coordinator: NSPersistentStoreCoordinator? = NSPersistentStoreCoordinator(managedObjectModel: self.managedObjectModel)
let url = self.applicationDocumentsDirectory.URLByAppendingPathComponent("<data model name>.sqlite")
var error: NSError? = nil
var failureReason = "There was an error creating or loading the application's saved data."
let options = [
NSMigratePersistentStoresAutomaticallyOption: true,
NSInferMappingModelAutomaticallyOption: true]
if coordinator!.addPersistentStoreWithType(NSSQLiteStoreType, configuration: nil, URL: url, options: options, error: &error) == nil {
coordinator = nil
// Report any error we got.
var dict = [String: AnyObject]()
dict[NSLocalizedDescriptionKey] = "Failed to initialize the application's saved data"
dict[NSLocalizedFailureReasonErrorKey] = failureReason
dict[NSUnderlyingErrorKey] = error
error = NSError(domain: "YOUR_ERROR_DOMAIN", code: 9999, userInfo: dict)
// Replace this with code to handle the error appropriately.
// abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development.
NSLog("Unresolved error \(error), \(error!.userInfo)")
abort()
}
return coordinator
}()
Таким образом, вы добавляете только параметры миграции в вызов addPersistentStoreWithType
.
Это помогло вам! –
Пожалуйста, избегайте отвечать на URL-адреса или, по крайней мере, вставляйте основные моменты, которые отвечают на вопрос. Вы не можете гарантировать, что внешняя ссылка всегда будет там ... – dooleyo
И, по сути, первая ссылка мертва - Bad Gateway. – rattletrap99