'scanHexInt32' was deprecated in iOS 13.0 'scanHexInt32' was deprecated in iOS 13.0 swift swift

'scanHexInt32' was deprecated in iOS 13.0


Update to use UInt64 and scanHexInt64:

convenience init(hex: String, alpha: CGFloat = 1.0) {    var hexFormatted: String = hex.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines).uppercased()    if hexFormatted.hasPrefix("#") {        hexFormatted = String(hexFormatted.dropFirst())    }    assert(hexFormatted.count == 6, "Invalid hex code used.")    var rgbValue: UInt64 = 0    Scanner(string: hexFormatted).scanHexInt64(&rgbValue)    self.init(red: CGFloat((rgbValue & 0xFF0000) >> 16) / 255.0,              green: CGFloat((rgbValue & 0x00FF00) >> 8) / 255.0,              blue: CGFloat(rgbValue & 0x0000FF) / 255.0,              alpha: alpha)}


Looks like apple is phasing out Int32 from their 64bit OSs. Try convert your code to use Int64 instead.

@available(iOS, introduced: 2.0, deprecated: 13.0)open func scanHexInt32(_ result: UnsafeMutablePointer<UInt32>?) -> Bool // Optionally prefixed with "0x" or "0X"@available(iOS 2.0, *)open func scanHexInt64(_ result: UnsafeMutablePointer<UInt64>?) -> Bool // Optionally prefixed with "0x" or "0X"


There is another Instance Method available

scanInt32(representation:)

Declaration:

func scanInt32(representation: Scanner.NumberRepresentation = .decimal) -> Int32?

Here you have to pass enum .hexadecimal.

I hope it will return same result. Result will be optional.