user #keyPath() for keys in demo app and in unit tests

This commit is contained in:
John Estropia
2016-09-09 17:05:55 +09:00
parent 0fa2a23461
commit e5245a0e5b
27 changed files with 1002 additions and 851 deletions

View File

@@ -168,7 +168,7 @@ class FetchingAndQueryingDemoViewController: UIViewController, UITableViewDataSo
return Static.timeZonesStack.fetchAll(
From<TimeZone>(),
OrderBy(.ascending("name"))
OrderBy(.ascending(#keyPath(TimeZone.name)))
)!
}
),
@@ -178,8 +178,8 @@ class FetchingAndQueryingDemoViewController: UIViewController, UITableViewDataSo
return Static.timeZonesStack.fetchAll(
From<TimeZone>(),
Where("%K BEGINSWITH[c] %@", "name", "Asia"),
OrderBy(.ascending("secondsFromGMT"))
Where("%K BEGINSWITH[c] %@", #keyPath(TimeZone.name), "Asia"),
OrderBy(.ascending(#keyPath(TimeZone.secondsFromGMT)))
)!
}
),
@@ -189,9 +189,9 @@ class FetchingAndQueryingDemoViewController: UIViewController, UITableViewDataSo
return Static.timeZonesStack.fetchAll(
From<TimeZone>(),
Where("%K BEGINSWITH[c] %@", "name", "America")
|| Where("%K BEGINSWITH[c] %@", "name", "Europe"),
OrderBy(.ascending("secondsFromGMT"))
Where("%K BEGINSWITH[c] %@", #keyPath(TimeZone.name), "America")
|| Where("%K BEGINSWITH[c] %@", #keyPath(TimeZone.name), "Europe"),
OrderBy(.ascending(#keyPath(TimeZone.secondsFromGMT)))
)!
}
),
@@ -201,8 +201,8 @@ class FetchingAndQueryingDemoViewController: UIViewController, UITableViewDataSo
return Static.timeZonesStack.fetchAll(
From<TimeZone>(),
!Where("%K BEGINSWITH[c] %@", "name", "America"),
OrderBy(.ascending("secondsFromGMT"))
!Where("%K BEGINSWITH[c] %@", #keyPath(TimeZone.name), "America"),
OrderBy(.ascending(#keyPath(TimeZone.secondsFromGMT)))
)!
}
),
@@ -213,7 +213,7 @@ class FetchingAndQueryingDemoViewController: UIViewController, UITableViewDataSo
return Static.timeZonesStack.fetchAll(
From<TimeZone>(),
Where("hasDaylightSavingTime", isEqualTo: true),
OrderBy(.ascending("name"))
OrderBy(.ascending(#keyPath(TimeZone.name)))
)!
}
)
@@ -226,7 +226,7 @@ class FetchingAndQueryingDemoViewController: UIViewController, UITableViewDataSo
return Static.timeZonesStack.queryValue(
From<TimeZone>(),
Select<NSNumber>(.count("name"))
Select<NSNumber>(.count(#keyPath(TimeZone.name)))
)!
}
),
@@ -236,8 +236,8 @@ class FetchingAndQueryingDemoViewController: UIViewController, UITableViewDataSo
return Static.timeZonesStack.queryValue(
From<TimeZone>(),
Select<String>("abbreviation"),
Where("%K ENDSWITH[c] %@", "name", "Tokyo")
Select<String>(#keyPath(TimeZone.abbreviation)),
Where("%K ENDSWITH[c] %@", #keyPath(TimeZone.name), "Tokyo")
)!
}
),
@@ -247,8 +247,8 @@ class FetchingAndQueryingDemoViewController: UIViewController, UITableViewDataSo
return Static.timeZonesStack.queryAttributes(
From<TimeZone>(),
Select<NSDictionary>("name", "abbreviation"),
OrderBy(.ascending("name"))
Select<NSDictionary>(#keyPath(TimeZone.name), #keyPath(TimeZone.abbreviation)),
OrderBy(.ascending(#keyPath(TimeZone.name)))
)!
}
),
@@ -258,9 +258,9 @@ class FetchingAndQueryingDemoViewController: UIViewController, UITableViewDataSo
return Static.timeZonesStack.queryAttributes(
From<TimeZone>(),
Select<NSDictionary>(.count("abbreviation"), "abbreviation"),
GroupBy("abbreviation"),
OrderBy(.ascending("secondsFromGMT"), .ascending("name"))
Select<NSDictionary>(.count(#keyPath(TimeZone.abbreviation)), #keyPath(TimeZone.abbreviation)),
GroupBy(#keyPath(TimeZone.abbreviation)),
OrderBy(.ascending(#keyPath(TimeZone.secondsFromGMT)), .ascending(#keyPath(TimeZone.name)))
)!
}
),
@@ -271,11 +271,11 @@ class FetchingAndQueryingDemoViewController: UIViewController, UITableViewDataSo
return Static.timeZonesStack.queryAttributes(
From<TimeZone>(),
Select<NSDictionary>(
.count("hasDaylightSavingTime", as: "numberOfCountries"),
"hasDaylightSavingTime"
.count(#keyPath(TimeZone.hasDaylightSavingTime), as: "numberOfCountries"),
#keyPath(TimeZone.hasDaylightSavingTime)
),
GroupBy("hasDaylightSavingTime"),
OrderBy(.descending("hasDaylightSavingTime"))
GroupBy(#keyPath(TimeZone.hasDaylightSavingTime)),
OrderBy(.descending(#keyPath(TimeZone.hasDaylightSavingTime)))
)!
}
)

View File

@@ -33,8 +33,8 @@ private struct Static {
switch self {
case .all: return Where(true)
case .light: return Where("brightness >= 0.9")
case .dark: return Where("brightness <= 0.4")
case .light: return Where("%K >= %@", #keyPath(Palette.brightness), 0.9)
case .dark: return Where("%K <= %@", #keyPath(Palette.brightness), 0.4)
}
}
}
@@ -59,8 +59,8 @@ private struct Static {
return CoreStore.monitorSectionedList(
From<Palette>(),
SectionBy("colorName"),
OrderBy(.ascending("hue"))
SectionBy(#keyPath(Palette.colorName)),
OrderBy(.ascending(#keyPath(Palette.hue)))
)
}()
}

View File

@@ -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<Palette>(), OrderBy(.ascending(#keyPath(Palette.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<Palette>(), OrderBy(.ascending(#keyPath(Palette.hue))))!
self.monitor = CoreStore.monitorObject(palette)
}
@@ -176,15 +176,15 @@ class ObjectObserverDemoViewController: UIViewController, ObjectObserver {
self.hsbLabel?.text = palette.colorText
if changedKeys == nil || changedKeys?.contains("hue") == true {
if changedKeys == nil || changedKeys?.contains(#keyPath(Palette.hue)) == true {
self.hueSlider?.value = Float(palette.hue)
}
if changedKeys == nil || changedKeys?.contains("saturation") == true {
if changedKeys == nil || changedKeys?.contains(#keyPath(Palette.saturation)) == true {
self.saturationSlider?.value = palette.saturation
}
if changedKeys == nil || changedKeys?.contains("brightness") == true {
if changedKeys == nil || changedKeys?.contains(#keyPath(Palette.brightness)) == true {
self.brightnessSlider?.value = palette.brightness
}

View File

@@ -24,7 +24,7 @@ class Palette: NSManagedObject {
get {
let KVCKey = "colorName"
let KVCKey = #keyPath(Palette.colorName)
if let colorName = self.accessValueForKVCKey(KVCKey) as? String {
return colorName
@@ -49,7 +49,7 @@ class Palette: NSManagedObject {
}
set {
self.setValue(newValue, forKVCKey: "colorName")
self.setValue(newValue, forKVCKey: #keyPath(Palette.colorName))
}
}

View File

@@ -241,7 +241,7 @@ class MigrationsDemoViewController: UIViewController, ListObserver, UITableViewD
let count = dataStack.queryValue(
From(model.entityType),
Select<Int>(.count("dna")))!
Select<Int>(.count(#keyPath(OrganismProtocol.dna))))!
if count > 0 {
self.setEnabled(true)

View File

@@ -16,8 +16,14 @@ class OrganismV2ToV3MigrationPolicy: NSEntityMigrationPolicy {
for dInstance in manager.destinationInstances(forEntityMappingName: mapping.name, sourceInstances: [sInstance]) {
dInstance.setValue(false, forKey: "hasVertebrae")
dInstance.setValue(sInstance.value(forKey: "numberOfFlippers"), forKey: "numberOfLimbs")
dInstance.setValue(
false,
forKey: #keyPath(OrganismV3.hasVertebrae)
)
dInstance.setValue(
sInstance.value(forKey: #keyPath(OrganismV2.numberOfFlippers)),
forKey: #keyPath(OrganismV3.numberOfLimbs)
)
}
}
}

View File

@@ -140,7 +140,7 @@ class TransactionsDemoViewController: UIViewController, MKMapViewDelegate, Objec
mapView.setCenter(object.coordinate, animated: true)
mapView.selectAnnotation(object, animated: true)
if changedPersistentKeys.contains("latitude") || changedPersistentKeys.contains("longitude") {
if changedPersistentKeys.contains(#keyPath(Place.latitude) || changedPersistentKeys.contains(#keyPath(Place.longitude)) {
self.geocode(place: object)
}