Ошибка без инициализации всех сохраненных свойств, возвращаемых из инициализатора

введите здесь описание изображения

Я конвертирую swift 1.2 в swift 3.2, здесь init показывает ошибку, любое предложение, пожалуйста

var context:NSManagedObjectContext
var psc:NSPersistentStoreCoordinator
var model:NSManagedObjectModel
var store:NSPersistentStore? = nil
var contextDict = [Int : NSManagedObjectContext]()
var results:NSBatchUpdateResult

init() {
    let bundle = Bundle.main
    let modelURL =
    bundle.url(forResource: "maildough", withExtension:"momd")
    model = NSManagedObjectModel(contentsOf: modelURL!)!
    psc = NSPersistentStoreCoordinator(managedObjectModel:model)
    context = NSManagedObjectContext(concurrencyType:.mainQueueConcurrencyType)
    context.persistentStoreCoordinator = psc
} ///getting error here

выдает ошибку при повторном запуске из инициализатора без инициализации всех сохраненных свойств


person MIOSY    schedule 29.06.2017    source источник
comment
Вы пропустили results для инициализации.   -  person nayem    schedule 29.06.2017
comment
результаты вар: NSBatchUpdateResult? просто попробуйте это.   -  person Vignesh Davins    schedule 29.06.2017


Ответы (1)


Вот как вам нужно сделать это для Swift 3+

var errorHandler: (Error) -> Void = {_ in }

lazy var libraryDirectory: NSURL = {

    let urls = FileManager.default.urls(for: .libraryDirectory, in: .userDomainMask)

    return urls[urls.count-1] as NSURL
}()


lazy var managedObjectModel: NSManagedObjectModel = {

    let modelURL = Bundle.main.url(forResource: "maildough", withExtension: "mom")
    return NSManagedObjectModel(contentsOf: modelURL!)!
}()


lazy var persistentStoreCoordinator: NSPersistentStoreCoordinator = {
    let coordinator = NSPersistentStoreCoordinator(managedObjectModel:
        self.managedObjectModel)
    let url = 
self.libraryDirectory.appendingPathComponent("maildough.sqlite")
    do {
        try coordinator.addPersistentStore(ofType:
            NSSQLiteStoreType,
                                           configurationName: nil,
                                           at: url,
                                           options: [
                                            NSMigratePersistentStoresAutomaticallyOption: true,

 NSInferMappingModelAutomaticallyOption: true
            ]
        )
    } catch {
        // Report any error we got.
        NSLog("CoreData error \(error), \(error._userInfo)")
        self.errorHandler(error)
    }
    return coordinator
}()

lazy var managedObjectContext: NSManagedObjectContext = {
    let coordinator = self.persistentStoreCoordinator
    var mainManagedObjectContext = NSManagedObjectContext(concurrencyType: .mainQueueConcurrencyType)
    mainManagedObjectContext.persistentStoreCoordinator = coordinator
    return mainManagedObjectContext
}()
person Ludovik LeJeune    schedule 29.06.2017