From 668b5ad606847ba1fef1f11d6ac951a42cfd7ba8 Mon Sep 17 00:00:00 2001 From: John Estropia Date: Mon, 7 Dec 2020 14:08:05 +0900 Subject: [PATCH] Update playground samples to use Field properties instead of old syntax --- Playground_iOS.playground/Contents.swift | 45 +++++++++++++------ .../contents.xcplayground | 2 +- Playground_macOS.playground/Contents.swift | 45 +++++++++++++------ .../contents.xcplayground | 2 +- 4 files changed, 64 insertions(+), 30 deletions(-) diff --git a/Playground_iOS.playground/Contents.swift b/Playground_iOS.playground/Contents.swift index 32e5d00..92b37e6 100644 --- a/Playground_iOS.playground/Contents.swift +++ b/Playground_iOS.playground/Contents.swift @@ -6,14 +6,24 @@ PlaygroundPage.current.needsIndefiniteExecution = true /// Model Declaration ===== class Animal: CoreStoreObject { - let species = Value.Required("species", initial: "Swift") - let master = Relationship.ToOne("master") - let color = Transformable.Optional("color", initial: .orange) + + @Field.Stored("species") + var species: String = "Swift" + + @Field.Coded("color", coder: FieldCoders.NSCoding.self) + var color: UIColor = .orange + + @Field.Relationship("master") + var master: Person? } class Person: CoreStoreObject { - let name = Value.Optional("name") - let pets = Relationship.ToManyUnordered("pets", inverse: { $0.master }) + + @Field.Stored("name") + var name: String? + + @Field.Relationship("pets", inverse: \.$master) + var pets: Set } /// ======================= @@ -24,6 +34,10 @@ let dataStack = DataStack( entities: [ Entity("Animal"), Entity("Person") + ], + versionLock: [ + "Animal": [0x4a201cc685d53c0a, 0x16e6c3b561577875, 0xb032e2da61c792a0, 0xa133b801051acee4], + "Person": [0xca938eea1af4bd56, 0xbca30994506356ad, 0x7a7cc655898816ef, 0x1a4551ffedc9b214] ] ) ) @@ -42,12 +56,12 @@ dataStack.addStorage( asynchronous: { transaction in let animal = transaction.create(Into()) - animal.species .= "Sparrow" - animal.color .= .yellow + animal.species = "Sparrow" + animal.color = .yellow let person = transaction.create(Into()) - person.name .= "John" - person.pets.value.insert(animal) + person.name = "John" + person.pets.insert(animal) }, completion: { result in @@ -58,13 +72,16 @@ dataStack.addStorage( case .success: /// Accessing Objects ===== - let bird = try! dataStack.fetchOne(From().where(\.species == "Sparrow"))! - print(bird.species.value) - print(bird.color.value as Any) + let bird = try! dataStack.fetchOne( + From() + .where(\.$species == "Sparrow") + )! + print(bird.species) + print(bird.color as Any) print(bird) - let owner = bird.master.value! - print(owner.name.value as Any) + let owner = bird.master! + print(owner.name as Any) print(owner.pets.count) print(owner) /// ======================= diff --git a/Playground_iOS.playground/contents.xcplayground b/Playground_iOS.playground/contents.xcplayground index 9f5f2f4..a751024 100644 --- a/Playground_iOS.playground/contents.xcplayground +++ b/Playground_iOS.playground/contents.xcplayground @@ -1,4 +1,4 @@ - + \ No newline at end of file diff --git a/Playground_macOS.playground/Contents.swift b/Playground_macOS.playground/Contents.swift index e01652e..52228f6 100644 --- a/Playground_macOS.playground/Contents.swift +++ b/Playground_macOS.playground/Contents.swift @@ -6,14 +6,24 @@ PlaygroundPage.current.needsIndefiniteExecution = true /// Model Declaration ===== class Animal: CoreStoreObject { - let species = Value.Required("species", initial: "Swift") - let master = Relationship.ToOne("master") - let color = Transformable.Optional("color", initial: .orange) + + @Field.Stored("species") + var species: String = "Swift" + + @Field.Coded("color", coder: FieldCoders.NSCoding.self) + var color: NSColor = .orange + + @Field.Relationship("master") + var master: Person? } class Person: CoreStoreObject { - let name = Value.Optional("name") - let pets = Relationship.ToManyUnordered("pets", inverse: { $0.master }) + + @Field.Stored("name") + var name: String? + + @Field.Relationship("pets", inverse: \.$master) + var pets: Set } /// ======================= @@ -24,6 +34,10 @@ let dataStack = DataStack( entities: [ Entity("Animal"), Entity("Person") + ], + versionLock: [ + "Animal": [0x4a201cc685d53c0a, 0x16e6c3b561577875, 0xb032e2da61c792a0, 0xa133b801051acee4], + "Person": [0xca938eea1af4bd56, 0xbca30994506356ad, 0x7a7cc655898816ef, 0x1a4551ffedc9b214] ] ) ) @@ -42,12 +56,12 @@ dataStack.addStorage( asynchronous: { transaction in let animal = transaction.create(Into()) - animal.species .= "Sparrow" - animal.color .= .yellow + animal.species = "Sparrow" + animal.color = .yellow let person = transaction.create(Into()) - person.name .= "John" - person.pets.value.insert(animal) + person.name = "John" + person.pets.insert(animal) }, completion: { result in @@ -58,13 +72,16 @@ dataStack.addStorage( case .success: /// Accessing Objects ===== - let bird = try! dataStack.fetchOne(From().where(\.species == "Sparrow"))! - print(bird.species.value) - print(bird.color.value as Any) + let bird = try! dataStack.fetchOne( + From() + .where(\.$species == "Sparrow") + )! + print(bird.species) + print(bird.color as Any) print(bird) - let owner = bird.master.value! - print(owner.name.value as Any) + let owner = bird.master! + print(owner.name as Any) print(owner.pets.count) print(owner) /// ======================= diff --git a/Playground_macOS.playground/contents.xcplayground b/Playground_macOS.playground/contents.xcplayground index a93d484..a8211e5 100644 --- a/Playground_macOS.playground/contents.xcplayground +++ b/Playground_macOS.playground/contents.xcplayground @@ -1,4 +1,4 @@ - + \ No newline at end of file