From 8584d1d6ed36c195258977f2ed0cf95357efb160 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Fri, 7 Apr 2023 11:49:00 +0900 Subject: [PATCH] Switch from deprecated NSSecureCoding API (#132) Fixes #131 --- Sources/Defaults/Defaults+Bridge.swift | 6 +++--- Sources/Defaults/Defaults+Extensions.swift | 6 +++--- Sources/Defaults/Defaults+Protocol.swift | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Sources/Defaults/Defaults+Bridge.swift b/Sources/Defaults/Defaults+Bridge.swift index ab2afe8..a1221bb 100644 --- a/Sources/Defaults/Defaults+Bridge.swift +++ b/Sources/Defaults/Defaults+Bridge.swift @@ -50,7 +50,7 @@ extension Defaults { This exists to avoid compiler ambiguity. */ extension Defaults { - public struct CodableNSSecureCodingBridge: CodableBridge {} + public struct CodableNSSecureCodingBridge: CodableBridge {} } extension Defaults { @@ -79,7 +79,7 @@ extension Defaults { } extension Defaults { - public struct NSSecureCodingBridge: Bridge { + public struct NSSecureCodingBridge: Bridge { public typealias Value = Value public typealias Serializable = Data @@ -97,7 +97,7 @@ extension Defaults { } do { - return try NSKeyedUnarchiver.unarchiveTopLevelObjectWithData(object) as? Value + return try NSKeyedUnarchiver.unarchivedObject(ofClass: Value.self, from: object) } catch { print(error) return nil diff --git a/Sources/Defaults/Defaults+Extensions.swift b/Sources/Defaults/Defaults+Extensions.swift index 6a9417c..51a6e4f 100644 --- a/Sources/Defaults/Defaults+Extensions.swift +++ b/Sources/Defaults/Defaults+Extensions.swift @@ -85,11 +85,11 @@ extension Defaults.Serializable where Self: Codable { public static var bridge: Defaults.TopLevelCodableBridge { Defaults.TopLevelCodableBridge() } } -extension Defaults.Serializable where Self: Codable & NSSecureCoding { +extension Defaults.Serializable where Self: Codable & NSSecureCoding & NSObject { public static var bridge: Defaults.CodableNSSecureCodingBridge { Defaults.CodableNSSecureCodingBridge() } } -extension Defaults.Serializable where Self: Codable & NSSecureCoding & Defaults.PreferNSSecureCoding { +extension Defaults.Serializable where Self: Codable & NSSecureCoding & NSObject & Defaults.PreferNSSecureCoding { public static var bridge: Defaults.NSSecureCodingBridge { Defaults.NSSecureCodingBridge() } } @@ -104,7 +104,7 @@ extension Defaults.Serializable where Self: Codable & RawRepresentable & Default extension Defaults.Serializable where Self: RawRepresentable { public static var bridge: Defaults.RawRepresentableBridge { Defaults.RawRepresentableBridge() } } -extension Defaults.Serializable where Self: NSSecureCoding { +extension Defaults.Serializable where Self: NSSecureCoding & NSObject { public static var bridge: Defaults.NSSecureCodingBridge { Defaults.NSSecureCodingBridge() } } diff --git a/Sources/Defaults/Defaults+Protocol.swift b/Sources/Defaults/Defaults+Protocol.swift index 96db946..533019d 100644 --- a/Sources/Defaults/Defaults+Protocol.swift +++ b/Sources/Defaults/Defaults+Protocol.swift @@ -41,7 +41,7 @@ public protocol _DefaultsSetAlgebraSerializable: SetAlgebra, Defaults.Serializab public protocol _DefaultsCodableBridge: Defaults.Bridge where Serializable == String, Value: Codable {} public protocol _DefaultsPreferRawRepresentable: RawRepresentable {} -public protocol _DefaultsPreferNSSecureCoding: NSSecureCoding {} +public protocol _DefaultsPreferNSSecureCoding: NSObject, NSSecureCoding {} // Essential properties for serializing and deserializing `ClosedRange` and `Range`. public protocol _DefaultsRange {