From 14b5cee92e1ef4f8d5f4cf4ce5c908281f2ba397 Mon Sep 17 00:00:00 2001 From: Jesse Squires Date: Sun, 8 May 2016 14:04:45 -0700 Subject: [PATCH] Update README.md --- README.md | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 08c412b9..94e1872a 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,7 @@ This library aims to do the following: * Provide better interoperability with Swift * Harness Swift features and enforce Swift paradigms * Bring functional paradigms to Core Data +* Make Core Data more *Swifty* * Simplify the processes of standing up the Core Data stack * Aid in testing your Core Data models * Reduce the boilerplate involved with Core Data @@ -74,7 +75,7 @@ let model = CoreDataModel(name: "MyModel", bundle: bundle) let factory = CoreDataStackFactory(model: model) let stack: CoreDataStack? -factory.createStackInBackground { (result: CoreDataStackResult) in +factory.createStack { (result: StackResult) in switch result { case .Success(let s): stack = s @@ -90,7 +91,17 @@ factory.createStackInBackground { (result: CoreDataStackResult) in ````swift let inMemoryModel = CoreDataModel(name: myName, bundle: myBundle, storeType: .InMemory) let factory = CoreDataStackFactory(model: inMemoryModel) -let stack = factory.createStack() + +let stack: CoreDataStack? +factory.createStack { (result: StackResult) in + switch result { + case .Success(let s): + stack = s + + case .Failure(let e): + print("Error: \(e)") + } +} ```` #### Saving a managed object context @@ -113,7 +124,7 @@ saveContext(stack.mainContext) { result in let bundle = NSBundle(identifier: "com.MyApp.MyModelFramework")! let model = CoreDataModel(name: "MyModel", bundle: bundle) do { - try model.removeExistingModelStore() + try model.removeExistingStore() } catch { print("Error: \(error)") } @@ -126,7 +137,7 @@ let bundle = NSBundle(identifier: "com.MyApp.MyModelFramework")! let model = CoreDataModel(name: "MyModel", bundle: bundle) if model.needsMigration { do { - try migrate(model) + try model.migrate() } catch { print("Failed to migrate model: \(error)") } @@ -136,8 +147,11 @@ if model.needsMigration { #### Using child contexts ````swift -// Create a background queue child context from the main queue context -let childContext = stack.childContext() +// Create a main queue child context from the main context +let childContext = stack.childContext(concurrencyType: .MainQueueConcurrencyType) + +// Create a background queue child context from the background context +let childContext = stack.childContext(concurrencyType: .PrivateQueueConcurrencyType) ```` #### Fetching @@ -149,7 +163,7 @@ let request = FetchRequest(entity: entity) var results = [MyModel]() do { - results = try fetch(request: request, inContext: context) + results = try stack.mainContext.fetch(request: request) } catch { print("Fetch error: \(error)") @@ -163,7 +177,7 @@ print("Results = \(results)") ````swift let objects: [MyModel] = /* array of MyModel objects */ -deleteObjects(objects, inContext: context) +stack.mainContext.delete(objects: objects) // Commit changes to remove objects from store saveContext(context)