From e5ef4992d3bb0f940a5d6312612dd6fff6ef9046 Mon Sep 17 00:00:00 2001 From: John Estropia Date: Fri, 7 Apr 2017 21:57:45 +0900 Subject: [PATCH] WIP: migrations for CoreStoreObjects --- .../Internal/NSManagedObjectModel+Setup.swift | 35 ++++--------------- .../Setup/Dynamic Models/DynamicObject.swift | 2 +- 2 files changed, 8 insertions(+), 29 deletions(-) diff --git a/Sources/Internal/NSManagedObjectModel+Setup.swift b/Sources/Internal/NSManagedObjectModel+Setup.swift index b5e9c17..9ac892e 100644 --- a/Sources/Internal/NSManagedObjectModel+Setup.swift +++ b/Sources/Internal/NSManagedObjectModel+Setup.swift @@ -104,11 +104,12 @@ internal extension NSManagedObjectModel { if let modelVersionFileURL = modelVersionFileURL, let rootModel = NSManagedObjectModel(contentsOf: modelVersionFileURL) { - - rootModel.modelVersionFileURL = modelVersionFileURL - rootModel.modelVersions = modelVersions - rootModel.currentModelVersion = currentModelVersion - return rootModel + + // TODO: apply to DynamicModel as well + rootModel.modelVersionFileURL = modelVersionFileURL + rootModel.modelVersions = modelVersions + rootModel.currentModelVersion = currentModelVersion + return rootModel } CoreStore.abort("Could not create an \(cs_typeName(NSManagedObjectModel.self)) from the model at URL \"\(modelFileURL)\".") @@ -178,29 +179,6 @@ internal extension NSManagedObjectModel { return mapping } - // TODO: remove -// @nonobjc -// internal func entityNames(for type: NSManagedObject.Type) -> Set { -// -// let className = NSStringFromClass(type) -// return Set( -// self.objectClassNamesByEntityName -// .filter({ $0.value == className }) -// .map({ $0.key }) -// ) -// } -// -// @nonobjc -// internal func entityTypesMapping() -> [EntityName: NSManagedObject.Type] { -// -// var mapping = [EntityName: NSManagedObject.Type]() -// self.objectClassNamesByEntityName.forEach { (entityName, className) in -// -// mapping[entityName] = (NSClassFromString(className)! as! NSManagedObject.Type) -// } -// return mapping -// } - @nonobjc internal func mergedModels() -> [NSManagedObjectModel] { @@ -222,6 +200,7 @@ internal extension NSManagedObjectModel { return nil } + // TODO: apply to DynamicModel as well let versionModelFileURL = modelFileURL.appendingPathComponent("\(modelVersion).mom", isDirectory: false) guard let model = NSManagedObjectModel(contentsOf: versionModelFileURL) else { diff --git a/Sources/Setup/Dynamic Models/DynamicObject.swift b/Sources/Setup/Dynamic Models/DynamicObject.swift index 8baa366..2a09c09 100644 --- a/Sources/Setup/Dynamic Models/DynamicObject.swift +++ b/Sources/Setup/Dynamic Models/DynamicObject.swift @@ -29,7 +29,7 @@ import Foundation // MARK: - DynamicObject public protocol DynamicObject: class { - + static func cs_forceCreate(entityDescription: NSEntityDescription, into context: NSManagedObjectContext, assignTo store: NSPersistentStore) -> Self static func cs_fromRaw(object: NSManagedObject) -> Self