From aa76b2758377a0bc4a48979793e7c9d0477a4e51 Mon Sep 17 00:00:00 2001 From: Antonio Yip Date: Sat, 30 May 2020 09:51:22 +1200 Subject: [PATCH 1/3] add watchOS version control --- Package.swift | 4 ++++ .../CoreDataModelDescription/CoreDataEntityDescription.swift | 2 +- .../CoreDataFetchIndexDescription.swift | 2 +- .../CoreDataModelDescription/CoreDataModelDescription.swift | 2 +- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/Package.swift b/Package.swift index ec67b6d..122f6db 100644 --- a/Package.swift +++ b/Package.swift @@ -5,6 +5,10 @@ import PackageDescription let package = Package( name: "CoreDataModelDescription", + platforms: [.macOS(.v10_13), + .iOS(.v11), + .tvOS(.v11), + .watchOS(.v4)], products: [ // Products define the executables and libraries produced by a package, and make them visible to other packages. .library( diff --git a/Sources/CoreDataModelDescription/CoreDataEntityDescription.swift b/Sources/CoreDataModelDescription/CoreDataEntityDescription.swift index 5806475..68c4b26 100644 --- a/Sources/CoreDataModelDescription/CoreDataEntityDescription.swift +++ b/Sources/CoreDataModelDescription/CoreDataEntityDescription.swift @@ -10,7 +10,7 @@ import CoreData /// Describes and creates `NSEntityDescription` -@available(iOS 11.0, tvOS 11.0, macOS 10.13, *) +@available(iOS 11.0, tvOS 11.0, macOS 10.13, watchOS 4.0, *) public struct CoreDataEntityDescription { public static func entity(name: String, diff --git a/Sources/CoreDataModelDescription/CoreDataFetchIndexDescription.swift b/Sources/CoreDataModelDescription/CoreDataFetchIndexDescription.swift index e382578..d337735 100644 --- a/Sources/CoreDataModelDescription/CoreDataFetchIndexDescription.swift +++ b/Sources/CoreDataModelDescription/CoreDataFetchIndexDescription.swift @@ -10,7 +10,7 @@ import CoreData /// Describes `NSFetchIndexDescription` -@available(iOS 11.0, tvOS 11.0, macOS 10.13, *) +@available(iOS 11.0, tvOS 11.0, macOS 10.13, watchOS 4.0, *) public struct CoreDataFetchIndexDescription { /// Describes `NSFetchIndexElementDescription` diff --git a/Sources/CoreDataModelDescription/CoreDataModelDescription.swift b/Sources/CoreDataModelDescription/CoreDataModelDescription.swift index 10b2dc3..5c671e3 100644 --- a/Sources/CoreDataModelDescription/CoreDataModelDescription.swift +++ b/Sources/CoreDataModelDescription/CoreDataModelDescription.swift @@ -10,7 +10,7 @@ import CoreData /// Used to create `NSManagedObjectModel` -@available(iOS 11.0, tvOS 11.0, macOS 10.13, *) +@available(iOS 11.0, tvOS 11.0, macOS 10.13, watchOS 4.0, *) public struct CoreDataModelDescription { public var entities: [CoreDataEntityDescription] From 633014c345cf0ca764566f0745326653a2115bb4 Mon Sep 17 00:00:00 2001 From: Antonio Yip Date: Sat, 30 May 2020 11:17:13 +1200 Subject: [PATCH 2/3] NSManagedObjectModel convenience init --- .../CoreDataModelDescription.swift | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/Sources/CoreDataModelDescription/CoreDataModelDescription.swift b/Sources/CoreDataModelDescription/CoreDataModelDescription.swift index 5c671e3..1fafe23 100644 --- a/Sources/CoreDataModelDescription/CoreDataModelDescription.swift +++ b/Sources/CoreDataModelDescription/CoreDataModelDescription.swift @@ -20,10 +20,16 @@ public struct CoreDataModelDescription { } public func makeModel() -> NSManagedObjectModel { - let model = NSManagedObjectModel() + return NSManagedObjectModel(modelDescription: self) + } +} + +extension NSManagedObjectModel { + convenience init(modelDescription: CoreDataModelDescription) { + self.init() // For convenience: the package objects use "Description" suffix, Core Data objects have no suffix. - let entitiesDescriptions = self.entities + let entitiesDescriptions = modelDescription.entities let entities: [NSEntityDescription] // Model creation has next steps: @@ -153,12 +159,10 @@ public struct CoreDataModelDescription { // Set entities and configurations - model.entities = entities + self.entities = entities for (configurationName, entities) in configurationNameToEntities { - model.setEntities(entities, forConfigurationName: configurationName) + self.setEntities(entities, forConfigurationName: configurationName) } - - return model } } From 2056017452743d713f8bde6f78a1a857acdaf96b Mon Sep 17 00:00:00 2001 From: Antonio Yip Date: Sat, 30 May 2020 11:22:30 +1200 Subject: [PATCH 3/3] public modifier --- Sources/CoreDataModelDescription/CoreDataModelDescription.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/CoreDataModelDescription/CoreDataModelDescription.swift b/Sources/CoreDataModelDescription/CoreDataModelDescription.swift index 1fafe23..1518d50 100644 --- a/Sources/CoreDataModelDescription/CoreDataModelDescription.swift +++ b/Sources/CoreDataModelDescription/CoreDataModelDescription.swift @@ -24,7 +24,7 @@ public struct CoreDataModelDescription { } } -extension NSManagedObjectModel { +public extension NSManagedObjectModel { convenience init(modelDescription: CoreDataModelDescription) { self.init()