From c796902a0496dc2808d21314a96f06e32844ee30 Mon Sep 17 00:00:00 2001 From: FreeApp2014 Date: Sun, 25 Oct 2020 13:07:31 +0300 Subject: [PATCH 1/2] Fix for 5.3 --- Sources/SwiftyJSON/SwiftyJSON.swift | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Sources/SwiftyJSON/SwiftyJSON.swift b/Sources/SwiftyJSON/SwiftyJSON.swift index cffd1857..91f17f7e 100755 --- a/Sources/SwiftyJSON/SwiftyJSON.swift +++ b/Sources/SwiftyJSON/SwiftyJSON.swift @@ -298,9 +298,9 @@ public struct JSON { internal static func stringFromNumber(_ number: NSNumber) -> String { let type = CFNumberGetType(unsafeBitCast(number, to: CFNumber.self)) switch(type) { - case kCFNumberFloat32Type: + case .float32Type: return String(number.floatValue) - case kCFNumberFloat64Type: + case .float64Type: return String(number.doubleValue) default: return String(number.int64Value) @@ -1564,7 +1564,7 @@ extension NSNumber { get { #if os(Linux) let type = CFNumberGetType(unsafeBitCast(self, to: CFNumber.self)) - if type == kCFNumberSInt8Type && + if type == .sInt8Type && (self.compare(trueNumber) == ComparisonResult.orderedSame || self.compare(falseNumber) == ComparisonResult.orderedSame){ return true From b702b8bad6fcf44fef156775d56a80a85ef3e99e Mon Sep 17 00:00:00 2001 From: FreeApp2014 Date: Sun, 25 Oct 2020 22:35:59 +0300 Subject: [PATCH 2/2] fix incompatibility with old swift versions --- Sources/SwiftyJSON/SwiftyJSON.swift | 39 ++++++++++++++++++++++------- 1 file changed, 30 insertions(+), 9 deletions(-) diff --git a/Sources/SwiftyJSON/SwiftyJSON.swift b/Sources/SwiftyJSON/SwiftyJSON.swift index 91f17f7e..b7fedf13 100755 --- a/Sources/SwiftyJSON/SwiftyJSON.swift +++ b/Sources/SwiftyJSON/SwiftyJSON.swift @@ -296,15 +296,26 @@ public struct JSON { public static var null: JSON { get { return JSON(NSNull() as Any) } } #if os(Linux) internal static func stringFromNumber(_ number: NSNumber) -> String { - let type = CFNumberGetType(unsafeBitCast(number, to: CFNumber.self)) - switch(type) { - case .float32Type: - return String(number.floatValue) - case .float64Type: - return String(number.doubleValue) - default: - return String(number.int64Value) - } + let type = CFNumberGetType(unsafeBitCast(number, to: CFNumber.self)) + #if swift(>=5.3) + switch(type) { + case .float32Type: + return String(number.floatValue) + case .float64Type: + return String(number.doubleValue) + default: + return String(number.int64Value) + } + #else + switch(type) { + case kCFNumberFloat32Type: + return String(number.floatValue) + case kCFNumberFloat64Type: + return String(number.doubleValue) + default: + return String(number.int64Value) + } + #endif } #endif } @@ -1564,6 +1575,7 @@ extension NSNumber { get { #if os(Linux) let type = CFNumberGetType(unsafeBitCast(self, to: CFNumber.self)) + #if swift(>=5.3) if type == .sInt8Type && (self.compare(trueNumber) == ComparisonResult.orderedSame || self.compare(falseNumber) == ComparisonResult.orderedSame){ @@ -1571,6 +1583,15 @@ extension NSNumber { } else { return false } + #else + if type == kCFNumberSInt8Type && + (self.compare(trueNumber) == ComparisonResult.orderedSame || + self.compare(falseNumber) == ComparisonResult.orderedSame){ + return true + } else { + return false + } + #endif #else let objCType = String(describing: self.objCType) if (self.compare(trueNumber) == ComparisonResult.orderedSame && objCType == trueObjCType)