diff --git a/Mist/Extensions/Sequence+Extension.swift b/Mist/Extensions/Sequence+Extension.swift index 53a0dfb..dca8fb4 100644 --- a/Mist/Extensions/Sequence+Extension.swift +++ b/Mist/Extensions/Sequence+Extension.swift @@ -30,7 +30,12 @@ extension Sequence where Iterator.Element == [String: Any] { /// - Returns: A JSON string representation. func jsonString() throws -> String { let data: Data = try JSONSerialization.data(withJSONObject: self, options: [.prettyPrinted, .sortedKeys]) - return String(decoding: data, as: UTF8.self) + + guard let string: String = String(data: data, encoding: .utf8) else { + throw MistError.invalidData + } + + return string } /// Provides a Property List string representation. @@ -40,7 +45,12 @@ extension Sequence where Iterator.Element == [String: Any] { /// - Returns: A Property List string representation. func propertyListString() throws -> String { let data: Data = try PropertyListSerialization.data(fromPropertyList: self, format: .xml, options: .bitWidth) - return String(decoding: data, as: UTF8.self) + + guard let string: String = String(data: data, encoding: .utf8) else { + throw MistError.invalidData + } + + return string } /// Provides a YAML string representation. diff --git a/Mist/Views/Activity/ActivityView.swift b/Mist/Views/Activity/ActivityView.swift index 7e69183..a5e6588 100644 --- a/Mist/Views/Activity/ActivityView.swift +++ b/Mist/Views/Activity/ActivityView.swift @@ -178,7 +178,7 @@ struct ActivityView: View { } private func checkForUserCancellation(_ failure: Error) -> Bool { - if failure as? CancellationError != nil { + if failure is CancellationError { return true } diff --git a/Mist/Views/Refresh/RefreshView.swift b/Mist/Views/Refresh/RefreshView.swift index bc50be6..6746032 100644 --- a/Mist/Views/Refresh/RefreshView.swift +++ b/Mist/Views/Refresh/RefreshView.swift @@ -242,7 +242,7 @@ struct RefreshView: View { var value: [String: Any] = value as? [String: Any], let date: Date = value["PostDate"] as? Date, let extendedMetaInfo: [String: Any] = value["ExtendedMetaInfo"] as? [String: Any], - extendedMetaInfo["InstallAssistantPackageIdentifiers"] as? [String: Any] != nil, + extendedMetaInfo["InstallAssistantPackageIdentifiers"] is [String: Any], let distributions: [String: Any] = value["Distributions"] as? [String: Any], let distributionURL: String = distributions["English"] as? String, let url: URL = URL(string: distributionURL) else {