From 0232a6f1b7dae6ccea41745ef5a2ab32f5697edc Mon Sep 17 00:00:00 2001 From: Jerrad Thramer Date: Wed, 8 Nov 2017 16:21:25 -0700 Subject: [PATCH] Adding missing critical properties to appropriate NSCoding/NSCopying/isEqual methods. --- MapboxDirections/MBRouteOptions.swift | 10 +++++++++- MapboxDirectionsTests/RouteOptionsTests.swift | 1 + 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/MapboxDirections/MBRouteOptions.swift b/MapboxDirections/MBRouteOptions.swift index f03258f01..a44aafcfc 100644 --- a/MapboxDirections/MBRouteOptions.swift +++ b/MapboxDirections/MBRouteOptions.swift @@ -228,6 +228,11 @@ open class RouteOptions: NSObject, NSSecureCoding, NSCopying{ locale = decoder.decodeObject(of: NSLocale.self, forKey: "locale") as Locale? includesSpokenInstructions = decoder.decodeBool(forKey: "includesSpokenInstructions") + + guard let distanceMeasurementSystem = MeasurementSystem(description: decoder.decodeObject(of: NSString.self, forKey: "distanceMeasurementSystem") as String? ?? "") else { + return nil + } + self.distanceMeasurementSystem = distanceMeasurementSystem } open static var supportsSecureCoding = true @@ -244,6 +249,7 @@ open class RouteOptions: NSObject, NSSecureCoding, NSCopying{ coder.encode(includesExitRoundaboutManeuver, forKey: "includesExitRoundaboutManeuver") coder.encode(locale, forKey: "locale") coder.encode(includesSpokenInstructions, forKey: "includesSpokenInstructions") + coder.encode(distanceMeasurementSystem.description, forKey: "distanceMeasurementSystem") } // MARK: Specifying the Path of the Route @@ -471,6 +477,7 @@ open class RouteOptions: NSObject, NSSecureCoding, NSCopying{ copy.includesExitRoundaboutManeuver = includesExitRoundaboutManeuver copy.locale = locale copy.includesSpokenInstructions = includesSpokenInstructions + copy.distanceMeasurementSystem = distanceMeasurementSystem return copy } @@ -492,7 +499,8 @@ open class RouteOptions: NSObject, NSSecureCoding, NSCopying{ attributeOptions == other.attributeOptions, includesExitRoundaboutManeuver == other.includesExitRoundaboutManeuver, locale == other.locale, - includesSpokenInstructions == other.includesSpokenInstructions else { return false } + includesSpokenInstructions == other.includesSpokenInstructions, + distanceMeasurementSystem == other.distanceMeasurementSystem else { return false } return true } } diff --git a/MapboxDirectionsTests/RouteOptionsTests.swift b/MapboxDirectionsTests/RouteOptionsTests.swift index c7b2f6f8c..8ea568d4a 100644 --- a/MapboxDirectionsTests/RouteOptionsTests.swift +++ b/MapboxDirectionsTests/RouteOptionsTests.swift @@ -60,6 +60,7 @@ private extension RouteOptions { opts.attributeOptions = [.congestionLevel] opts.includesExitRoundaboutManeuver = true opts.includesSpokenInstructions = true + opts.distanceMeasurementSystem = .metric return opts }