From f9e33101a0b966638527e9905538bb15489f72ce Mon Sep 17 00:00:00 2001 From: John Rommel Estropia Date: Thu, 21 Jul 2016 08:32:16 +0900 Subject: [PATCH] WIP --- CoreStoreDemo/CoreStoreDemo/AppDelegate.swift | 4 +- ...etchingAndQueryingDemoViewController.swift | 72 +++++++-------- .../FetchingResultsViewController.swift | 10 +- .../QueryingResultsViewController.swift | 10 +- .../ListObserverDemoViewController.swift | 91 ++++++++++--------- .../ObjectObserverDemoViewController.swift | 20 ++-- .../ObserversViewController.swift | 8 +- .../CustomLoggerViewController.swift | 22 ++--- .../MigrationsDemoViewController.swift | 78 ++++++++-------- .../OrganismV2ToV3MigrationPolicy.swift | 8 +- .../StackSetupDemoViewController.swift | 44 ++++----- .../TransactionsDemoViewController.swift | 56 ++++++------ 12 files changed, 212 insertions(+), 211 deletions(-) diff --git a/CoreStoreDemo/CoreStoreDemo/AppDelegate.swift b/CoreStoreDemo/CoreStoreDemo/AppDelegate.swift index cae2352..3efdff3 100644 --- a/CoreStoreDemo/CoreStoreDemo/AppDelegate.swift +++ b/CoreStoreDemo/CoreStoreDemo/AppDelegate.swift @@ -18,9 +18,9 @@ class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? - func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { - application.statusBarStyle = .LightContent + application.statusBarStyle = .lightContent return true } diff --git a/CoreStoreDemo/CoreStoreDemo/Fetching and Querying Demo/FetchingAndQueryingDemoViewController.swift b/CoreStoreDemo/CoreStoreDemo/Fetching and Querying Demo/FetchingAndQueryingDemoViewController.swift index 8392895..719e509 100644 --- a/CoreStoreDemo/CoreStoreDemo/Fetching and Querying Demo/FetchingAndQueryingDemoViewController.swift +++ b/CoreStoreDemo/CoreStoreDemo/Fetching and Querying Demo/FetchingAndQueryingDemoViewController.swift @@ -23,23 +23,23 @@ private struct Static { ) ) - dataStack.beginSynchronous { (transaction) -> Void in + _ = dataStack.beginSynchronous { (transaction) -> Void in - transaction.deleteAll(From(TimeZone)) + transaction.deleteAll(From()) - for name in NSTimeZone.knownTimeZoneNames() { + for name in Foundation.TimeZone.knownTimeZoneNames { - let rawTimeZone = NSTimeZone(name: name)! - let cachedTimeZone = transaction.create(Into(TimeZone)) + let rawTimeZone = Foundation.TimeZone(name: name)! + let cachedTimeZone = transaction.create(Into()) cachedTimeZone.name = rawTimeZone.name cachedTimeZone.abbreviation = rawTimeZone.abbreviation ?? "" cachedTimeZone.secondsFromGMT = Int32(rawTimeZone.secondsFromGMT) - cachedTimeZone.hasDaylightSavingTime = rawTimeZone.daylightSavingTime + cachedTimeZone.hasDaylightSavingTime = rawTimeZone.isDaylightSavingTime cachedTimeZone.daylightSavingTimeOffset = rawTimeZone.daylightSavingTimeOffset } - transaction.commitAndWait() + _ = transaction.commitAndWait() } return dataStack @@ -53,7 +53,7 @@ class FetchingAndQueryingDemoViewController: UIViewController, UITableViewDataSo // MARK: UIViewController - override func viewDidAppear(animated: Bool) { + override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) @@ -67,27 +67,27 @@ class FetchingAndQueryingDemoViewController: UIViewController, UITableViewDataSo let alert = UIAlertController( title: "Fetch and Query Demo", message: "This demo shows how to execute fetches and queries.\n\nEach menu item executes and displays a preconfigured fetch/query.", - preferredStyle: .Alert + preferredStyle: .alert ) - alert.addAction(UIAlertAction(title: "OK", style: .Cancel, handler: nil)) - self.presentViewController(alert, animated: true, completion: nil) + alert.addAction(UIAlertAction(title: "OK", style: .cancel, handler: nil)) + self.present(alert, animated: true, completion: nil) } - override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { + override func prepare(for segue: UIStoryboardSegue, sender: AnyObject?) { - super.prepareForSegue(segue, sender: sender) + super.prepare(for: segue, sender: sender) - if let indexPath = sender as? NSIndexPath { + if let indexPath = sender as? IndexPath { switch segue.destinationViewController { case let controller as FetchingResultsViewController: let item = self.fetchingItems[indexPath.row] - controller.setTimeZones(item.fetch(), title: item.title) + controller.set(timeZones: item.fetch(), title: item.title) case let controller as QueryingResultsViewController: let item = self.queryingItems[indexPath.row] - controller.setValue(item.query(), title: item.title) + controller.set(value: item.query(), title: item.title) default: break @@ -98,7 +98,7 @@ class FetchingAndQueryingDemoViewController: UIViewController, UITableViewDataSo // MARK: UITableViewDataSource - func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { switch self.segmentedControl?.selectedSegmentIndex { @@ -113,9 +113,9 @@ class FetchingAndQueryingDemoViewController: UIViewController, UITableViewDataSo } } - func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { - let cell = tableView.dequeueReusableCellWithIdentifier("UITableViewCell")! + let cell = tableView.dequeueReusableCell(withIdentifier: "UITableViewCell")! switch self.segmentedControl?.selectedSegmentIndex { @@ -135,17 +135,17 @@ class FetchingAndQueryingDemoViewController: UIViewController, UITableViewDataSo // MARK: UITableViewDelegate - func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { + func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { - tableView.deselectRowAtIndexPath(indexPath, animated: true) + tableView.deselectRow(at: indexPath, animated: true) switch self.segmentedControl?.selectedSegmentIndex { case Section.Fetching.rawValue?: - self.performSegueWithIdentifier("FetchingResultsViewController", sender: indexPath) + self.performSegue(withIdentifier: "FetchingResultsViewController", sender: indexPath) case Section.Querying.rawValue?: - self.performSegueWithIdentifier("QueryingResultsViewController", sender: indexPath) + self.performSegue(withIdentifier: "QueryingResultsViewController", sender: indexPath) default: break @@ -167,7 +167,7 @@ class FetchingAndQueryingDemoViewController: UIViewController, UITableViewDataSo fetch: { () -> [TimeZone] in return Static.timeZonesStack.fetchAll( - From(TimeZone), + From(), OrderBy(.ascending("name")) )! } @@ -177,7 +177,7 @@ class FetchingAndQueryingDemoViewController: UIViewController, UITableViewDataSo fetch: { () -> [TimeZone] in return Static.timeZonesStack.fetchAll( - From(TimeZone), + From(), Where("%K BEGINSWITH[c] %@", "name", "Asia"), OrderBy(.ascending("secondsFromGMT")) )! @@ -188,7 +188,7 @@ class FetchingAndQueryingDemoViewController: UIViewController, UITableViewDataSo fetch: { () -> [TimeZone] in return Static.timeZonesStack.fetchAll( - From(TimeZone), + From(), Where("%K BEGINSWITH[c] %@", "name", "America") || Where("%K BEGINSWITH[c] %@", "name", "Europe"), OrderBy(.ascending("secondsFromGMT")) @@ -200,7 +200,7 @@ class FetchingAndQueryingDemoViewController: UIViewController, UITableViewDataSo fetch: { () -> [TimeZone] in return Static.timeZonesStack.fetchAll( - From(TimeZone), + From(), !Where("%K BEGINSWITH[c] %@", "name", "America"), OrderBy(.ascending("secondsFromGMT")) )! @@ -211,7 +211,7 @@ class FetchingAndQueryingDemoViewController: UIViewController, UITableViewDataSo fetch: { () -> [TimeZone] in return Static.timeZonesStack.fetchAll( - From(TimeZone), + From(), Where("hasDaylightSavingTime", isEqualTo: true), OrderBy(.ascending("name")) )! @@ -225,8 +225,8 @@ class FetchingAndQueryingDemoViewController: UIViewController, UITableViewDataSo query: { () -> AnyObject in return Static.timeZonesStack.queryValue( - From(TimeZone), - Select(.Count("name")) + From(), + Select(.count("name")) )! } ), @@ -235,7 +235,7 @@ class FetchingAndQueryingDemoViewController: UIViewController, UITableViewDataSo query: { () -> AnyObject in return Static.timeZonesStack.queryValue( - From(TimeZone), + From(), Select("abbreviation"), Where("%K ENDSWITH[c] %@", "name", "Tokyo") )! @@ -246,7 +246,7 @@ class FetchingAndQueryingDemoViewController: UIViewController, UITableViewDataSo query: { () -> AnyObject in return Static.timeZonesStack.queryAttributes( - From(TimeZone), + From(), Select("name", "abbreviation"), OrderBy(.ascending("name")) )! @@ -257,8 +257,8 @@ class FetchingAndQueryingDemoViewController: UIViewController, UITableViewDataSo query: { () -> AnyObject in return Static.timeZonesStack.queryAttributes( - From(TimeZone), - Select(.Count("abbreviation"), "abbreviation"), + From(), + Select(.count("abbreviation"), "abbreviation"), GroupBy("abbreviation"), OrderBy(.ascending("secondsFromGMT"), .ascending("name")) )! @@ -269,9 +269,9 @@ class FetchingAndQueryingDemoViewController: UIViewController, UITableViewDataSo query: { () -> AnyObject in return Static.timeZonesStack.queryAttributes( - From(TimeZone), + From(), Select( - .Count("hasDaylightSavingTime", As: "numberOfCountries"), + .count("hasDaylightSavingTime", As: "numberOfCountries"), "hasDaylightSavingTime" ), GroupBy("hasDaylightSavingTime"), diff --git a/CoreStoreDemo/CoreStoreDemo/Fetching and Querying Demo/FetchingResultsViewController.swift b/CoreStoreDemo/CoreStoreDemo/Fetching and Querying Demo/FetchingResultsViewController.swift index 17003e9..d49c5f2 100644 --- a/CoreStoreDemo/CoreStoreDemo/Fetching and Querying Demo/FetchingResultsViewController.swift +++ b/CoreStoreDemo/CoreStoreDemo/Fetching and Querying Demo/FetchingResultsViewController.swift @@ -14,7 +14,7 @@ class FetchingResultsViewController: UITableViewController { // MARK: Public - func setTimeZones(timeZones: [TimeZone]?, title: String) { + func set(timeZones: [TimeZone]?, title: String) { self.timeZones += timeZones ?? [] self.sectionTitle = title @@ -36,14 +36,14 @@ class FetchingResultsViewController: UITableViewController { // MARK: UITableViewDataSource - override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return self.timeZones.count } - override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { + override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { - let cell = tableView.dequeueReusableCellWithIdentifier("UITableViewCell", forIndexPath: indexPath) + let cell = tableView.dequeueReusableCell(withIdentifier: "UITableViewCell", for: indexPath) let timeZone = self.timeZones[indexPath.row] cell.textLabel?.text = timeZone.name @@ -55,7 +55,7 @@ class FetchingResultsViewController: UITableViewController { // MARK: UITableViewDelegate - override func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? { + override func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? { return self.sectionTitle } diff --git a/CoreStoreDemo/CoreStoreDemo/Fetching and Querying Demo/QueryingResultsViewController.swift b/CoreStoreDemo/CoreStoreDemo/Fetching and Querying Demo/QueryingResultsViewController.swift index 3399187..45f3e25 100644 --- a/CoreStoreDemo/CoreStoreDemo/Fetching and Querying Demo/QueryingResultsViewController.swift +++ b/CoreStoreDemo/CoreStoreDemo/Fetching and Querying Demo/QueryingResultsViewController.swift @@ -12,7 +12,7 @@ class QueryingResultsViewController: UITableViewController { // MARK: Public - func setValue(value: AnyObject?, title: String) { + func set(value: AnyObject?, title: String) { switch value { @@ -55,14 +55,14 @@ class QueryingResultsViewController: UITableViewController { // MARK: UITableViewDataSource - override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return self.values.count } - override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { + override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { - let cell = tableView.dequeueReusableCellWithIdentifier("UITableViewCell", forIndexPath: indexPath) + let cell = tableView.dequeueReusableCell(withIdentifier: "UITableViewCell", for: indexPath) let value = self.values[indexPath.row] @@ -75,7 +75,7 @@ class QueryingResultsViewController: UITableViewController { // MARK: UITableViewDelegate - override func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? { + override func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? { return self.sectionTitle } diff --git a/CoreStoreDemo/CoreStoreDemo/List and Object Observers Demo/ListObserverDemoViewController.swift b/CoreStoreDemo/CoreStoreDemo/List and Object Observers Demo/ListObserverDemoViewController.swift index 15462cc..f3fd4cc 100644 --- a/CoreStoreDemo/CoreStoreDemo/List and Object Observers Demo/ListObserverDemoViewController.swift +++ b/CoreStoreDemo/CoreStoreDemo/List and Object Observers Demo/ListObserverDemoViewController.swift @@ -58,7 +58,7 @@ private struct Static { ) return CoreStore.monitorSectionedList( - From(Palette), + From(), SectionBy("colorName"), OrderBy(.ascending("hue")) ) @@ -88,7 +88,7 @@ class ListObserverDemoViewController: UITableViewController, ListSectionObserver navigationItem.leftBarButtonItems = [ self.editButtonItem(), UIBarButtonItem( - barButtonSystemItem: .Trash, + barButtonSystemItem: .trash, target: self, action: #selector(self.resetBarButtonItemTouched(_:)) ) @@ -96,13 +96,13 @@ class ListObserverDemoViewController: UITableViewController, ListSectionObserver let filterBarButton = UIBarButtonItem( title: Static.filter.rawValue, - style: .Plain, + style: .plain, target: self, action: #selector(self.filterBarButtonItemTouched(_:)) ) navigationItem.rightBarButtonItems = [ UIBarButtonItem( - barButtonSystemItem: .Add, + barButtonSystemItem: .add, target: self, action: #selector(self.addBarButtonItemTouched(_:)) ), @@ -112,12 +112,12 @@ class ListObserverDemoViewController: UITableViewController, ListSectionObserver Static.palettes.addObserver(self) - self.setTableEnabled(!Static.palettes.isPendingRefetch) + self.setTable(enabled: !Static.palettes.isPendingRefetch) } - override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { + override func prepare(for segue: UIStoryboardSegue, sender: AnyObject?) { - super.prepareForSegue(segue, sender: sender) + super.prepare(for: segue, sender: sender) switch (segue.identifier, segue.destinationViewController, sender) { @@ -132,19 +132,19 @@ class ListObserverDemoViewController: UITableViewController, ListSectionObserver // MARK: UITableViewDataSource - override func numberOfSectionsInTableView(tableView: UITableView) -> Int { + override func numberOfSections(in tableView: UITableView) -> Int { return Static.palettes.numberOfSections() } - override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return Static.palettes.numberOfObjectsInSection(section) } - override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { + override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { - let cell = tableView.dequeueReusableCellWithIdentifier("PaletteTableViewCell") as! PaletteTableViewCell + let cell = tableView.dequeueReusableCell(withIdentifier: "PaletteTableViewCell") as! PaletteTableViewCell let palette = Static.palettes[indexPath] cell.colorView?.backgroundColor = palette.color @@ -156,21 +156,21 @@ class ListObserverDemoViewController: UITableViewController, ListSectionObserver // MARK: UITableViewDelegate - override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { + override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { - tableView.deselectRowAtIndexPath(indexPath, animated: true) + tableView.deselectRow(at: indexPath, animated: true) - self.performSegueWithIdentifier( - "ObjectObserverDemoViewController", + self.performSegue( + withIdentifier: "ObjectObserverDemoViewController", sender: Static.palettes[indexPath] ) } - override func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) { + override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) { switch editingStyle { - case .Delete: + case .delete: let palette = Static.palettes[indexPath] CoreStore.beginAsynchronous{ (transaction) -> Void in @@ -183,7 +183,7 @@ class ListObserverDemoViewController: UITableViewController, ListSectionObserver } } - override func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? { + override func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? { return Static.palettes.sectionInfoAtIndex(section).name } @@ -191,44 +191,44 @@ class ListObserverDemoViewController: UITableViewController, ListSectionObserver // MARK: ListObserver - func listMonitorWillChange(monitor: ListMonitor) { + func listMonitorWillChange(_ monitor: ListMonitor) { self.tableView.beginUpdates() } - func listMonitorDidChange(monitor: ListMonitor) { + func listMonitorDidChange(_ monitor: ListMonitor) { self.tableView.endUpdates() } func listMonitorWillRefetch(monitor: ListMonitor) { - self.setTableEnabled(false) + self.setTable(enabled: false) } func listMonitorDidRefetch(monitor: ListMonitor) { self.filterBarButton?.title = Static.filter.rawValue self.tableView.reloadData() - self.setTableEnabled(true) + self.setTable(enabled: true) } // MARK: ListObjectObserver - func listMonitor(monitor: ListMonitor, didInsertObject object: Palette, toIndexPath indexPath: NSIndexPath) { + func listMonitor(_ monitor: ListMonitor, didInsertObject object: Palette, toIndexPath indexPath: IndexPath) { - self.tableView.insertRowsAtIndexPaths([indexPath], withRowAnimation: .Automatic) + self.tableView.insertRows(at: [indexPath], with: .automatic) } - func listMonitor(monitor: ListMonitor, didDeleteObject object: Palette, fromIndexPath indexPath: NSIndexPath) { + func listMonitor(_ monitor: ListMonitor, didDeleteObject object: Palette, fromIndexPath indexPath: IndexPath) { - self.tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Automatic) + self.tableView.deleteRows(at: [indexPath], with: .automatic) } - func listMonitor(monitor: ListMonitor, didUpdateObject object: Palette, atIndexPath indexPath: NSIndexPath) { + func listMonitor(_ monitor: ListMonitor, didUpdateObject object: Palette, atIndexPath indexPath: IndexPath) { - if let cell = self.tableView.cellForRowAtIndexPath(indexPath) as? PaletteTableViewCell { + if let cell = self.tableView.cellForRow(at: indexPath) as? PaletteTableViewCell { let palette = Static.palettes[indexPath] cell.colorView?.backgroundColor = palette.color @@ -236,23 +236,24 @@ class ListObserverDemoViewController: UITableViewController, ListSectionObserver } } - func listMonitor(monitor: ListMonitor, didMoveObject object: Palette, fromIndexPath: NSIndexPath, toIndexPath: NSIndexPath) { + func listMonitor(_ monitor: ListMonitor, didMoveObject object: Palette, fromIndexPath: IndexPath, toIndexPath: IndexPath) { - self.tableView.deleteRowsAtIndexPaths([fromIndexPath], withRowAnimation: .Automatic) - self.tableView.insertRowsAtIndexPaths([toIndexPath], withRowAnimation: .Automatic) + self.tableView.deleteRows(at: [fromIndexPath], with: .automatic) + self.tableView.insertRows(at: [toIndexPath], with: .automatic) } // MARK: ListSectionObserver - func listMonitor(monitor: ListMonitor, didInsertSection sectionInfo: NSFetchedResultsSectionInfo, toSectionIndex sectionIndex: Int) { + func listMonitor(_ monitor: ListMonitor, didInsertSection sectionInfo: NSFetchedResultsSectionInfo, toSectionIndex sectionIndex: Int) { - self.tableView.insertSections(NSIndexSet(index: sectionIndex), withRowAnimation: .Automatic) + self.tableView.insertSections(IndexSet(integer: sectionIndex), with: .automatic) } - func listMonitor(monitor: ListMonitor, didDeleteSection sectionInfo: NSFetchedResultsSectionInfo, fromSectionIndex sectionIndex: Int) { + + func listMonitor(_ monitor: ListMonitor, didDeleteSection sectionInfo: NSFetchedResultsSectionInfo, fromSectionIndex sectionIndex: Int) { - self.tableView.deleteSections(NSIndexSet(index: sectionIndex), withRowAnimation: .Automatic) + self.tableView.deleteSections(IndexSet(integer: sectionIndex), with: .automatic) } @@ -260,43 +261,43 @@ class ListObserverDemoViewController: UITableViewController, ListSectionObserver private var filterBarButton: UIBarButtonItem? - @IBAction private dynamic func resetBarButtonItemTouched(sender: AnyObject?) { + @IBAction private dynamic func resetBarButtonItemTouched(_ sender: AnyObject?) { CoreStore.beginAsynchronous { (transaction) -> Void in - transaction.deleteAll(From(Palette)) + transaction.deleteAll(From()) transaction.commit() } } - @IBAction private dynamic func filterBarButtonItemTouched(sender: AnyObject?) { + @IBAction private dynamic func filterBarButtonItemTouched(_ sender: AnyObject?) { Static.filter = Static.filter.next() } - @IBAction private dynamic func addBarButtonItemTouched(sender: AnyObject?) { + @IBAction private dynamic func addBarButtonItemTouched(_ sender: AnyObject?) { CoreStore.beginAsynchronous { (transaction) -> Void in - let palette = transaction.create(Into(Palette)) + let palette = transaction.create(Into()) palette.setInitialValues() transaction.commit() } } - private func setTableEnabled(enabled: Bool) { + private func setTable(enabled: Bool) { - UIView.animateWithDuration( - 0.2, + UIView.animate( + withDuration: 0.2, delay: 0, - options: .BeginFromCurrentState, + options: .beginFromCurrentState, animations: { () -> Void in if let tableView = self.tableView { tableView.alpha = enabled ? 1.0 : 0.5 - tableView.userInteractionEnabled = enabled + tableView.isUserInteractionEnabled = enabled } }, completion: nil diff --git a/CoreStoreDemo/CoreStoreDemo/List and Object Observers Demo/ObjectObserverDemoViewController.swift b/CoreStoreDemo/CoreStoreDemo/List and Object Observers Demo/ObjectObserverDemoViewController.swift index 03d100c..afc827b 100644 --- a/CoreStoreDemo/CoreStoreDemo/List and Object Observers Demo/ObjectObserverDemoViewController.swift +++ b/CoreStoreDemo/CoreStoreDemo/List and Object Observers Demo/ObjectObserverDemoViewController.swift @@ -50,7 +50,7 @@ class ObjectObserverDemoViewController: UIViewController, ObjectObserver { required init?(coder aDecoder: NSCoder) { - if let palette = CoreStore.fetchOne(From(Palette), OrderBy(.ascending("hue"))) { + if let palette = CoreStore.fetchOne(From(), OrderBy(.ascending("hue"))) { self.monitor = CoreStore.monitorObject(palette) } @@ -64,7 +64,7 @@ class ObjectObserverDemoViewController: UIViewController, ObjectObserver { transaction.commitAndWait() } - let palette = CoreStore.fetchOne(From(Palette), OrderBy(.ascending("hue")))! + let palette = CoreStore.fetchOne(From(), OrderBy(.ascending("hue")))! self.monitor = CoreStore.monitorObject(palette) } @@ -85,24 +85,24 @@ class ObjectObserverDemoViewController: UIViewController, ObjectObserver { // MARK: ObjectObserver - func objectMonitor(monitor: ObjectMonitor, didUpdateObject object: Palette, changedPersistentKeys: Set) { + func objectMonitor(_ monitor: ObjectMonitor, didUpdateObject object: Palette, changedPersistentKeys: Set) { self.reloadPaletteInfo(object, changedKeys: changedPersistentKeys) } - func objectMonitor(monitor: ObjectMonitor, didDeleteObject object: Palette) { + func objectMonitor(_ monitor: ObjectMonitor, didDeleteObject object: Palette) { - self.navigationItem.rightBarButtonItem?.enabled = false + self.navigationItem.rightBarButtonItem?.isEnabled = false self.colorNameLabel?.alpha = 0.3 self.colorView?.alpha = 0.3 self.hsbLabel?.text = "Deleted" - self.hsbLabel?.textColor = UIColor.redColor() + self.hsbLabel?.textColor = UIColor.red() - self.hueSlider?.enabled = false - self.saturationSlider?.enabled = false - self.brightnessSlider?.enabled = false + self.hueSlider?.isEnabled = false + self.saturationSlider?.isEnabled = false + self.brightnessSlider?.isEnabled = false } @@ -166,7 +166,7 @@ class ObjectObserverDemoViewController: UIViewController, ObjectObserver { } } - func reloadPaletteInfo(palette: Palette, changedKeys: Set?) { + func reloadPaletteInfo(_ palette: Palette, changedKeys: Set?) { self.colorNameLabel?.text = palette.colorName diff --git a/CoreStoreDemo/CoreStoreDemo/List and Object Observers Demo/ObserversViewController.swift b/CoreStoreDemo/CoreStoreDemo/List and Object Observers Demo/ObserversViewController.swift index 3ae0f43..a59e085 100644 --- a/CoreStoreDemo/CoreStoreDemo/List and Object Observers Demo/ObserversViewController.swift +++ b/CoreStoreDemo/CoreStoreDemo/List and Object Observers Demo/ObserversViewController.swift @@ -15,16 +15,16 @@ class ObserversViewController: UIViewController { // MARK: UIViewController - override func viewDidAppear(animated: Bool) { + override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) let alert = UIAlertController( title: "Observers Demo", message: "This demo shows how to observe changes to a list of objects. The top and bottom view controllers both observe a single shared \"ListMonitor\" instance.\n\nTap on a row to see how to observe changes made to a single object using a \"ObjectMonitor\".", - preferredStyle: .Alert + preferredStyle: .alert ) - alert.addAction(UIAlertAction(title: "OK", style: .Cancel, handler: nil)) - self.presentViewController(alert, animated: true, completion: nil) + alert.addAction(UIAlertAction(title: "OK", style: .cancel, handler: nil)) + self.present(alert, animated: true, completion: nil) } } diff --git a/CoreStoreDemo/CoreStoreDemo/Loggers Demo/CustomLoggerViewController.swift b/CoreStoreDemo/CoreStoreDemo/Loggers Demo/CustomLoggerViewController.swift index 5840ae6..c1dbe65 100644 --- a/CoreStoreDemo/CoreStoreDemo/Loggers Demo/CustomLoggerViewController.swift +++ b/CoreStoreDemo/CoreStoreDemo/Loggers Demo/CustomLoggerViewController.swift @@ -34,23 +34,23 @@ class CustomLoggerViewController: UIViewController, CoreStoreLogger { CoreStore.logger = self } - override func viewDidAppear(animated: Bool) { + override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) let alert = UIAlertController( title: "Logger Demo", message: "This demo shows how to plug-in any logging framework to CoreStore.\n\nThe view controller implements CoreStoreLogger and appends all logs to the text view.", - preferredStyle: .Alert + preferredStyle: .alert ) - alert.addAction(UIAlertAction(title: "OK", style: .Cancel, handler: nil)) - self.presentViewController(alert, animated: true, completion: nil) + alert.addAction(UIAlertAction(title: "OK", style: .cancel, handler: nil)) + self.present(alert, animated: true, completion: nil) } // MARK: CoreStoreLogger - func log(level level: LogLevel, message: String, fileName: StaticString, lineNumber: Int, functionName: StaticString) { + func log(level: LogLevel, message: String, fileName: StaticString, lineNumber: Int, functionName: StaticString) { GCDQueue.main.async { [weak self] in @@ -62,19 +62,19 @@ class CustomLoggerViewController: UIViewController, CoreStoreLogger { case .warning: levelString = "Warning" case .fatal: levelString = "Fatal" } - self?.textView?.insertText("\((fileName.stringValue as NSString).lastPathComponent):\(lineNumber) \(functionName)\n ↪︎ [Log:\(levelString)] \(message)\n\n") + self?.textView?.insertText("\((String(fileName) as NSString).lastPathComponent):\(lineNumber) \(functionName)\n ↪︎ [Log:\(levelString)] \(message)\n\n") } } - func log(error error: CoreStoreError, message: String, fileName: StaticString, lineNumber: Int, functionName: StaticString) { + func log(error: CoreStoreError, message: String, fileName: StaticString, lineNumber: Int, functionName: StaticString) { GCDQueue.main.async { [weak self] in - self?.textView?.insertText("\((fileName.stringValue as NSString).lastPathComponent):\(lineNumber) \(functionName)\n ↪︎ [Error] \(message): \(error)\n\n") + self?.textView?.insertText("\((String(fileName) as NSString).lastPathComponent):\(lineNumber) \(functionName)\n ↪︎ [Error] \(message): \(error)\n\n") } } - func assert(@autoclosure condition: () -> Bool, @autoclosure message: () -> String, fileName: StaticString, lineNumber: Int, functionName: StaticString) { + func assert(_ condition: @autoclosure () -> Bool, message: @autoclosure () -> String, fileName: StaticString, lineNumber: Int, functionName: StaticString) { if condition() { @@ -84,7 +84,7 @@ class CustomLoggerViewController: UIViewController, CoreStoreLogger { let messageString = message() GCDQueue.main.async { [weak self] in - self?.textView?.insertText("\((fileName.stringValue as NSString).lastPathComponent):\(lineNumber) \(functionName)\n ↪︎ [Assert] \(messageString)\n\n") + self?.textView?.insertText("\((String(fileName) as NSString).lastPathComponent):\(lineNumber) \(functionName)\n ↪︎ [Assert] \(messageString)\n\n") } } @@ -101,7 +101,7 @@ class CustomLoggerViewController: UIViewController, CoreStoreLogger { case 0?: self.dataStack.beginAsynchronous { (transaction) -> Void in - transaction.create(Into(Palette)) + _ = transaction.create(Into()) } case 1?: diff --git a/CoreStoreDemo/CoreStoreDemo/MIgrations Demo/MigrationsDemoViewController.swift b/CoreStoreDemo/CoreStoreDemo/MIgrations Demo/MigrationsDemoViewController.swift index 7e7fe56..4260ee1 100644 --- a/CoreStoreDemo/CoreStoreDemo/MIgrations Demo/MigrationsDemoViewController.swift +++ b/CoreStoreDemo/CoreStoreDemo/MIgrations Demo/MigrationsDemoViewController.swift @@ -22,28 +22,28 @@ class MigrationsDemoViewController: UIViewController { if let segmentedControl = self.segmentedControl { - for (index, model) in self.models.enumerate() { + for (index, model) in self.models.enumerated() { segmentedControl.setTitle( model.label, - forSegmentAtIndex: index + forSegmentAt: index ) } } - self.setDataStack(nil, model: nil, scrollToSelection: false) + self.set(dataStack: nil, model: nil, scrollToSelection: false) } - override func viewDidAppear(animated: Bool) { + override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) let alert = UIAlertController( title: "Migrations Demo", message: "This demo shows how to run progressive migrations and how to support multiple model versions in a single project.\n\nThe persistent store contains 10000 organisms, which gain/lose properties when the migration evolves/devolves them.\n\nYou can use the \"mutate\" button to change an organism's properties then migrate to a different model to see how its value gets affected.", - preferredStyle: .Alert + preferredStyle: .alert ) - alert.addAction(UIAlertAction(title: "OK", style: .Cancel, handler: nil)) - self.presentViewController(alert, animated: true, completion: nil) + alert.addAction(UIAlertAction(title: "OK", style: .cancel, handler: nil)) + self.present(alert, animated: true, completion: nil) let modelMetadata = withExtendedLifetime(DataStack(modelName: "MigrationDemo")) { @@ -113,13 +113,13 @@ class MigrationsDemoViewController: UIViewController { return self._dataStack } - private var _lastSelectedIndexPath: NSIndexPath? - private var lastSelectedIndexPath: NSIndexPath? { + private var _lastSelectedIndexPath: IndexPath? + private var lastSelectedIndexPath: IndexPath? { return self._lastSelectedIndexPath } - private func setSelectedIndexPath(indexPath: NSIndexPath, scrollToSelection: Bool) { + private func setSelectedIndexPath(_ indexPath: IndexPath, scrollToSelection: Bool) { self._lastSelectedIndexPath = indexPath self.updateDisplay(reloadData: false, scrollToSelection: scrollToSelection, animated: true) @@ -142,14 +142,14 @@ class MigrationsDemoViewController: UIViewController { self.selectModelVersion(self.models[index]) } - private func selectModelVersion(model: ModelMetadata) { + private func selectModelVersion(_ model: ModelMetadata) { if self.dataStack?.modelVersion == model.version { return } - self.setDataStack(nil, model: nil, scrollToSelection: false) // explicitly trigger NSPersistentStore cleanup by deallocating the stack + self.set(dataStack: nil, model: nil, scrollToSelection: false) // explicitly trigger NSPersistentStore cleanup by deallocating the stack let dataStack = DataStack( modelName: "MigrationDemo", @@ -172,11 +172,11 @@ class MigrationsDemoViewController: UIViewController { return } - self.setDataStack(dataStack, model: model, scrollToSelection: true) + self.set(dataStack: dataStack, model: model, scrollToSelection: true) let count = dataStack.queryValue( From(model.entityType), - Select(.Count("dna")) + Select(.count("dna")) ) if count > 0 { @@ -218,36 +218,36 @@ class MigrationsDemoViewController: UIViewController { } } - private func setEnabled(enabled: Bool) { + private func setEnabled(_ enabled: Bool) { - UIView.animateWithDuration( - 0.2, + UIView.animate( + withDuration: 0.2, delay: 0, - options: .BeginFromCurrentState, + options: .beginFromCurrentState, animations: { () -> Void in let navigationItem = self.navigationItem - navigationItem.leftBarButtonItem?.enabled = enabled - navigationItem.rightBarButtonItem?.enabled = enabled + navigationItem.leftBarButtonItem?.isEnabled = enabled + navigationItem.rightBarButtonItem?.isEnabled = enabled navigationItem.hidesBackButton = !enabled - self.segmentedControl?.enabled = enabled + self.segmentedControl?.isEnabled = enabled if let tableView = self.tableView { tableView.alpha = enabled ? 1.0 : 0.5 - tableView.userInteractionEnabled = enabled + tableView.isUserInteractionEnabled = enabled } }, completion: nil ) } - private func setDataStack(dataStack: DataStack?, model: ModelMetadata?, scrollToSelection: Bool) { + private func set(dataStack: DataStack?, model: ModelMetadata?, scrollToSelection: Bool) { if let dataStack = dataStack, let model = model { - self.segmentedControl?.selectedSegmentIndex = self.models.map { $0.version }.indexOf(model.version)! + self.segmentedControl?.selectedSegmentIndex = self.models.map { $0.version }.index(of: model.version)! self._dataStack = dataStack let listMonitor = dataStack.monitorList(From(model.entityType), OrderBy(.descending("dna"))) @@ -258,7 +258,7 @@ class MigrationsDemoViewController: UIViewController { if listMonitor.numberOfObjectsInSection(0) > 0 { - self.setSelectedIndexPath(NSIndexPath(forRow: 0, inSection: 0), scrollToSelection: true) + self.setSelectedIndexPath(IndexPath(row: 0, section: 0), scrollToSelection: true) } } } @@ -272,14 +272,14 @@ class MigrationsDemoViewController: UIViewController { self.updateDisplay(reloadData: true, scrollToSelection: scrollToSelection, animated: false) } - private func reloadTableHeaderWithProgress(progress: NSProgress) { + private func reloadTableHeaderWithProgress(_ progress: Progress) { self.progressView?.setProgress(Float(progress.fractionCompleted), animated: true) self.titleLabel?.text = "Migrating: \(progress.localizedDescription)" self.organismLabel?.text = "Progressive step \(progress.localizedAdditionalDescription)" } - private func updateDisplay(reloadData reloadData: Bool, scrollToSelection: Bool, animated: Bool) { + private func updateDisplay(reloadData: Bool, scrollToSelection: Bool, animated: Bool) { var lines = [String]() var organismType = "" @@ -287,14 +287,14 @@ class MigrationsDemoViewController: UIViewController { for property in organism.entity.properties { - let value: AnyObject = organism.valueForKey(property.name) ?? NSNull() + let value: AnyObject = organism.value(forKey: property.name) ?? NSNull() lines.append("\(property.name): \(value)") } organismType = organism.entity.managedObjectClassName } self.titleLabel?.text = organismType - self.organismLabel?.text = lines.joinWithSeparator("\n") + self.organismLabel?.text = lines.joined(separator: "\n") self.progressView?.progress = 0 self.headerContainer?.setNeedsLayout() @@ -311,11 +311,11 @@ class MigrationsDemoViewController: UIViewController { tableView.layoutIfNeeded() - if let indexPath = self.lastSelectedIndexPath where indexPath.row < tableView.numberOfRowsInSection(0) { + if let indexPath = self.lastSelectedIndexPath where indexPath.row < tableView.numberOfRows(inSection: 0) { - tableView.selectRowAtIndexPath(indexPath, + tableView.selectRow(at: indexPath, animated: scrollToSelection && animated, - scrollPosition: scrollToSelection ? .Middle : .None + scrollPosition: scrollToSelection ? .middle : .none ) } } @@ -328,14 +328,14 @@ extension MigrationsDemoViewController: ListObserver { // MARK: ListObserver - func listMonitorWillChange(monitor: ListMonitor) { } + func listMonitorWillChange(_ monitor: ListMonitor) { } - func listMonitorDidChange(monitor: ListMonitor) { + func listMonitorDidChange(_ monitor: ListMonitor) { if self.lastSelectedIndexPath == nil && self.listMonitor?.numberOfObjectsInSection(0) > 0 { self.tableView?.reloadData() - self.setSelectedIndexPath(NSIndexPath(forRow: 0, inSection: 0), scrollToSelection: false) + self.setSelectedIndexPath(IndexPath(row: 0, section: 0), scrollToSelection: false) } else { @@ -351,14 +351,14 @@ extension MigrationsDemoViewController: UITableViewDataSource, UITableViewDelega // MARK: UITableViewDataSource - @objc dynamic func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + @objc dynamic func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return self.listMonitor?.numberOfObjectsInSection(0) ?? 0 } - @objc dynamic func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { + @objc dynamic func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { - let cell = tableView.dequeueReusableCellWithIdentifier("OrganismTableViewCell", forIndexPath: indexPath) as! OrganismTableViewCell + let cell = tableView.dequeueReusableCell(withIdentifier: "OrganismTableViewCell", for: indexPath) as! OrganismTableViewCell let dna = (self.listMonitor?[indexPath] as? OrganismProtocol)?.dna.description ?? "" cell.dnaLabel?.text = "DNA: \(dna)" @@ -390,7 +390,7 @@ extension MigrationsDemoViewController: UITableViewDataSource, UITableViewDelega // MARK: UITableViewDelegate - @objc dynamic func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { + @objc dynamic func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { self.setSelectedIndexPath(indexPath, scrollToSelection: false) } diff --git a/CoreStoreDemo/CoreStoreDemo/MIgrations Demo/OrganismV2ToV3MigrationPolicy.swift b/CoreStoreDemo/CoreStoreDemo/MIgrations Demo/OrganismV2ToV3MigrationPolicy.swift index 6a16682..482dee8 100644 --- a/CoreStoreDemo/CoreStoreDemo/MIgrations Demo/OrganismV2ToV3MigrationPolicy.swift +++ b/CoreStoreDemo/CoreStoreDemo/MIgrations Demo/OrganismV2ToV3MigrationPolicy.swift @@ -10,14 +10,14 @@ import CoreData class OrganismV2ToV3MigrationPolicy: NSEntityMigrationPolicy { - override func createDestinationInstancesForSourceInstance(sInstance: NSManagedObject, entityMapping mapping: NSEntityMapping, manager: NSMigrationManager) throws { + override func createDestinationInstances(forSource sInstance: NSManagedObject, in mapping: NSEntityMapping, manager: NSMigrationManager) throws { - try super.createDestinationInstancesForSourceInstance(sInstance, entityMapping: mapping, manager: manager) + try super.createDestinationInstances(forSource: sInstance, in: mapping, manager: manager) - for dInstance in manager.destinationInstancesForEntityMappingNamed(mapping.name, sourceInstances: [sInstance]) { + for dInstance in manager.destinationInstances(forEntityMappingName: mapping.name, sourceInstances: [sInstance]) { dInstance.setValue(false, forKey: "hasVertebrae") - dInstance.setValue(sInstance.valueForKey("numberOfFlippers"), forKey: "numberOfLimbs") + dInstance.setValue(sInstance.value(forKey: "numberOfFlippers"), forKey: "numberOfLimbs") } } } diff --git a/CoreStoreDemo/CoreStoreDemo/Stack Setup Demo/StackSetupDemoViewController.swift b/CoreStoreDemo/CoreStoreDemo/Stack Setup Demo/StackSetupDemoViewController.swift index a6e6e84..ab49a0e 100644 --- a/CoreStoreDemo/CoreStoreDemo/Stack Setup Demo/StackSetupDemoViewController.swift +++ b/CoreStoreDemo/CoreStoreDemo/Stack Setup Demo/StackSetupDemoViewController.swift @@ -33,9 +33,9 @@ private struct Static { ) ) - dataStack.beginSynchronous { (transaction) -> Void in + _ = dataStack.beginSynchronous { (transaction) -> Void in - transaction.deleteAll(From(UserAccount)) + transaction.deleteAll(From()) let account1 = transaction.create(Into(maleConfiguration)) account1.accountType = "Facebook" @@ -47,7 +47,7 @@ private struct Static { account2.name = "Jane Doe HCD" account2.friends = 314 - transaction.commitAndWait() + _ = transaction.commitAndWait() } return dataStack @@ -71,9 +71,9 @@ private struct Static { ) ) - dataStack.beginSynchronous { (transaction) -> Void in + _ = dataStack.beginSynchronous { (transaction) -> Void in - transaction.deleteAll(From(UserAccount)) + transaction.deleteAll(From()) let account1 = transaction.create(Into(maleConfiguration)) account1.accountType = "Twitter" @@ -85,7 +85,7 @@ private struct Static { account2.name = "#janedoe_hcd" account2.friends = 100 - transaction.commitAndWait() + _ = transaction.commitAndWait() } return dataStack @@ -107,46 +107,46 @@ class StackSetupDemoViewController: UITableViewController { // MARK: UIViewController - override func viewWillAppear(animated: Bool) { + override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) self.tableView.reloadData() - let indexPath = NSIndexPath(forRow: 0, inSection: 0) - self.tableView.selectRowAtIndexPath(indexPath, animated: false, scrollPosition: .None) - self.updateDetailsWithAccount(self.accounts[indexPath.section][indexPath.row]) + let indexPath = IndexPath(row: 0, section: 0) + self.tableView.selectRow(at: indexPath, animated: false, scrollPosition: .none) + self.updateDetails(account: self.accounts[indexPath.section][indexPath.row]) } - override func viewDidAppear(animated: Bool) { + override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) let alert = UIAlertController( title: "Setup Demo", message: "This demo shows how to initialize 2 DataStacks with 2 configurations each, for a total of 4 SQLite files, each with 1 instance of a \"UserAccount\" entity.", - preferredStyle: .Alert + preferredStyle: .alert ) - alert.addAction(UIAlertAction(title: "OK", style: .Cancel, handler: nil)) - self.presentViewController(alert, animated: true, completion: nil) + alert.addAction(UIAlertAction(title: "OK", style: .cancel, handler: nil)) + self.present(alert, animated: true, completion: nil) } // MARK: UITableViewDataSource - override func numberOfSectionsInTableView(tableView: UITableView) -> Int { + override func numberOfSections(in tableView: UITableView) -> Int { return self.accounts.count } - override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return self.accounts[section].count } - override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { + override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { - let cell = tableView.dequeueReusableCellWithIdentifier("UITableViewCell")! + let cell = tableView.dequeueReusableCell(withIdentifier: "UITableViewCell")! let account = self.accounts[indexPath.section][indexPath.row] cell.textLabel?.text = account.name @@ -158,13 +158,13 @@ class StackSetupDemoViewController: UITableViewController { // MARK: UITableViewDelegate - override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { + override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { let account = self.accounts[indexPath.section][indexPath.row] - self.updateDetailsWithAccount(account) + self.updateDetails(account: account) } - override func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? { + override func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? { switch section { @@ -188,7 +188,7 @@ class StackSetupDemoViewController: UITableViewController { @IBOutlet private dynamic weak var nameLabel: UILabel? @IBOutlet private dynamic weak var friendsLabel: UILabel? - private func updateDetailsWithAccount(account: UserAccount) { + private func updateDetails(account: UserAccount) { self.accountTypeLabel?.text = account.accountType self.nameLabel?.text = account.name diff --git a/CoreStoreDemo/CoreStoreDemo/Transactions Demo/TransactionsDemoViewController.swift b/CoreStoreDemo/CoreStoreDemo/Transactions Demo/TransactionsDemoViewController.swift index bdc2a03..4b86181 100644 --- a/CoreStoreDemo/CoreStoreDemo/Transactions Demo/TransactionsDemoViewController.swift +++ b/CoreStoreDemo/CoreStoreDemo/Transactions Demo/TransactionsDemoViewController.swift @@ -26,17 +26,17 @@ private struct Static { ) ) - var place = CoreStore.fetchOne(From(Place)) + var place = CoreStore.fetchOne(From()) if place == nil { - CoreStore.beginSynchronous { (transaction) -> Void in + _ = CoreStore.beginSynchronous { (transaction) -> Void in - let place = transaction.create(Into(Place)) + let place = transaction.create(Into()) place.setInitialValues() - transaction.commitAndWait() + _ = transaction.commitAndWait() } - place = CoreStore.fetchOne(From(Place)) + place = CoreStore.fetchOne(From()) } return CoreStore.monitorObject(place!) @@ -71,33 +71,33 @@ class TransactionsDemoViewController: UIViewController, MKMapViewDelegate, Objec Static.placeController.addObserver(self) self.navigationItem.rightBarButtonItem = UIBarButtonItem( - barButtonSystemItem: .Refresh, + barButtonSystemItem: .refresh, target: self, action: #selector(self.refreshButtonTapped(_:)) ) } - override func viewDidAppear(animated: Bool) { + override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) let alert = UIAlertController( title: "Transactions Demo", message: "This demo shows how to use the 3 types of transactions to save updates: synchronous, asynchronous, and unsafe.\n\nTap and hold on the map to change the pin location.", - preferredStyle: .Alert + preferredStyle: .alert ) - alert.addAction(UIAlertAction(title: "OK", style: .Cancel, handler: nil)) - self.presentViewController(alert, animated: true, completion: nil) + alert.addAction(UIAlertAction(title: "OK", style: .cancel, handler: nil)) + self.present(alert, animated: true, completion: nil) } - override func viewWillAppear(animated: Bool) { + override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) if let mapView = self.mapView, let place = Static.placeController.object { mapView.addAnnotation(place) - mapView.setCenterCoordinate(place.coordinate, animated: false) + mapView.setCenter(place.coordinate, animated: false) mapView.selectAnnotation(place, animated: false) } } @@ -108,11 +108,11 @@ class TransactionsDemoViewController: UIViewController, MKMapViewDelegate, Objec func mapView(mapView: MKMapView, viewForAnnotation annotation: MKAnnotation) -> MKAnnotationView? { let identifier = "MKAnnotationView" - var annotationView: MKPinAnnotationView! = mapView.dequeueReusableAnnotationViewWithIdentifier(identifier) as? MKPinAnnotationView + var annotationView: MKPinAnnotationView! = mapView.dequeueReusableAnnotationView(withIdentifier: identifier) as? MKPinAnnotationView if annotationView == nil { annotationView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: identifier) - annotationView.enabled = true + annotationView.isEnabled = true annotationView.canShowCallout = true annotationView.animatesDrop = true } @@ -127,28 +127,28 @@ class TransactionsDemoViewController: UIViewController, MKMapViewDelegate, Objec // MARK: ObjectObserver - func objectMonitor(monitor: ObjectMonitor, willUpdateObject object: Place) { + func objectMonitor(_ monitor: ObjectMonitor, willUpdateObject object: Place) { // none } - func objectMonitor(monitor: ObjectMonitor, didUpdateObject object: Place, changedPersistentKeys: Set) { + func objectMonitor(_ monitor: ObjectMonitor, didUpdateObject object: Place, changedPersistentKeys: Set) { if let mapView = self.mapView { mapView.removeAnnotations(mapView.annotations ?? []) mapView.addAnnotation(object) - mapView.setCenterCoordinate(object.coordinate, animated: true) + mapView.setCenter(object.coordinate, animated: true) mapView.selectAnnotation(object, animated: true) if changedPersistentKeys.contains("latitude") || changedPersistentKeys.contains("longitude") { - self.geocodePlace(object) + self.geocode(place: object) } } } - func objectMonitor(monitor: ObjectMonitor, didDeleteObject object: Place) { + func objectMonitor(_ monitor: ObjectMonitor, didDeleteObject object: Place) { // none } @@ -160,13 +160,13 @@ class TransactionsDemoViewController: UIViewController, MKMapViewDelegate, Objec @IBOutlet weak var mapView: MKMapView? - @IBAction dynamic func longPressGestureRecognized(sender: AnyObject?) { + @IBAction dynamic func longPressGestureRecognized(_ sender: AnyObject?) { - if let mapView = self.mapView, let gesture = sender as? UILongPressGestureRecognizer where gesture.state == .Began { + if let mapView = self.mapView, let gesture = sender as? UILongPressGestureRecognizer where gesture.state == .began { - let coordinate = mapView.convertPoint( - gesture.locationInView(mapView), - toCoordinateFromView: mapView + let coordinate = mapView.convert( + gesture.location(in: mapView), + toCoordinateFrom: mapView ) CoreStore.beginAsynchronous { (transaction) -> Void in @@ -177,17 +177,17 @@ class TransactionsDemoViewController: UIViewController, MKMapViewDelegate, Objec } } - @IBAction dynamic func refreshButtonTapped(sender: AnyObject?) { + @IBAction dynamic func refreshButtonTapped(_ sender: AnyObject?) { - CoreStore.beginSynchronous { (transaction) -> Void in + _ = CoreStore.beginSynchronous { (transaction) -> Void in let place = transaction.edit(Static.placeController.object) place?.setInitialValues() - transaction.commitAndWait() + _ = transaction.commitAndWait() } } - func geocodePlace(place: Place) { + func geocode(place: Place) { let transaction = CoreStore.beginUnsafe()