NetworkExtension Changes for Swift
NetworkExtension
Added NEAppProxyFlowError.init(_nsError: NSError)
Added NETunnelProviderError.init(_nsError: NSError)
Added NEVPNError [struct]
Added NEVPNError.init(_nsError: NSError)
Modified NEAppProxyFlowError.Code [enum]
Declaration | |
---|---|
From | enum NEAppProxyErrorDomain : Int { case notConnected case peerReset case hostUnreachable case invalidArgument case aborted case refused case timedOut case `internal` case datagramTooLarge case readAlreadyPending } |
To | enum Code : Int { typealias _ErrorType = NEAppProxyFlowError case notConnected case peerReset case hostUnreachable case invalidArgument case aborted case refused case timedOut case `internal` case datagramTooLarge case readAlreadyPending } |
Modified NEHotspotHelper
Declaration | |
---|---|
From | class NEHotspotHelper : NSObject { class func register(options options: [String : NSObject]? = nil, queue queue: DispatchQueue, handler handler: NetworkExtension.NEHotspotHelperHandler) -> Bool class func logoff(_ network: NEHotspotNetwork) -> Bool class func supportedNetworkInterfaces() -> [Any] func performSelector(onMainThread aSelector: Selector, with arg: Any?, waitUntilDone wait: Bool, modes array: [String]?) func performSelector(onMainThread aSelector: Selector, with arg: Any?, waitUntilDone wait: Bool) func perform(_ aSelector: Selector, on thr: Thread, with arg: Any?, waitUntilDone wait: Bool, modes array: [String]?) func perform(_ aSelector: Selector, on thr: Thread, with arg: Any?, waitUntilDone wait: Bool) func performSelector(inBackground aSelector: Selector, with arg: Any?) class func classForKeyedUnarchiver() -> AnyClass var classForKeyedArchiver: AnyClass? { get } func replacementObject(for archiver: NSKeyedArchiver) -> Any? class func classFallbacksForKeyedArchiver() -> [String] class func keyPathsForValuesAffectingValue(forKey key: String) -> Set<String> class func automaticallyNotifiesObservers(forKey key: String) -> Bool var observationInfo: UnsafeMutableRawPointer? func willChangeValue(forKey key: String) func didChangeValue(forKey key: String) func willChange(_ changeKind: NSKeyValueChange, valuesAt indexes: IndexSet, forKey key: String) func didChange(_ changeKind: NSKeyValueChange, valuesAt indexes: IndexSet, forKey key: String) func willChangeValue(forKey key: String, withSetMutation mutationKind: NSKeyValueSetMutationKind, using objects: Set<AnyHashable>) func didChangeValue(forKey key: String, withSetMutation mutationKind: NSKeyValueSetMutationKind, using objects: Set<AnyHashable>) func addObserver(_ observer: NSObject, forKeyPath keyPath: String, options options: NSKeyValueObservingOptions = [], context context: UnsafeMutableRawPointer?) func removeObserver(_ observer: NSObject, forKeyPath keyPath: String, context context: UnsafeMutableRawPointer?) func removeObserver(_ observer: NSObject, forKeyPath keyPath: String) func observeValue(forKeyPath keyPath: String?, of object: Any?, change change: [NSKeyValueChangeKey : Any]?, context context: UnsafeMutableRawPointer?) class var accessInstanceVariablesDirectly: Bool { get } func value(forKey key: String) -> Any? func setValue(_ value: Any?, forKey key: String) func validateValue(_ ioValue: AutoreleasingUnsafeMutablePointer<AnyObject?>, forKey inKey: String) throws func mutableArrayValue(forKey key: String) -> NSMutableArray func mutableOrderedSetValue(forKey key: String) -> NSMutableOrderedSet func mutableSetValue(forKey key: String) -> NSMutableSet func value(forKeyPath keyPath: String) -> Any? func setValue(_ value: Any?, forKeyPath keyPath: String) func validateValue(_ ioValue: AutoreleasingUnsafeMutablePointer<AnyObject?>, forKeyPath inKeyPath: String) throws func mutableArrayValue(forKeyPath keyPath: String) -> NSMutableArray func mutableOrderedSetValue(forKeyPath keyPath: String) -> NSMutableOrderedSet func mutableSetValue(forKeyPath keyPath: String) -> NSMutableSet func value(forUndefinedKey key: String) -> Any? func setValue(_ value: Any?, forUndefinedKey key: String) func setNilValueForKey(_ key: String) func dictionaryWithValues(forKeys keys: [String]) -> [String : Any] func setValuesForKeys(_ keyedValues: [String : Any]) func fileManager(_ fm: FileManager, shouldProceedAfterError errorInfo: [AnyHashable : Any]) -> Bool func fileManager(_ fm: FileManager, willProcessPath path: String) func perform(_ aSelector: Selector, with anArgument: Any?, afterDelay delay: TimeInterval, inModes modes: [RunLoopMode]) func perform(_ aSelector: Selector, with anArgument: Any?, afterDelay delay: TimeInterval) class func cancelPreviousPerformRequests(withTarget aTarget: Any, selector aSelector: Selector, object anArgument: Any?) class func cancelPreviousPerformRequests(withTarget aTarget: Any) func attemptRecovery(fromError error: Error, optionIndex recoveryOptionIndex: Int, delegate delegate: Any?, didRecoverSelector didRecoverSelector: Selector?, contextInfo contextInfo: UnsafeMutableRawPointer?) func attemptRecovery(fromError error: Error, optionIndex recoveryOptionIndex: Int) -> Bool var autoContentAccessingProxy: Any { get } class func version() -> Int class func setVersion(_ aVersion: Int) var classForCoder: AnyClass { get } func awakeAfter(using aDecoder: NSCoder) -> Any? } extension NEHotspotHelper : CVarArg { } extension NEHotspotHelper : Equatable, Hashable { var hashValue: Int { get } } |
To | class NEHotspotHelper : NSObject { class func register(options options: [String : NSObject]? = nil, queue queue: DispatchQueue, handler handler: @escaping NetworkExtension.NEHotspotHelperHandler) -> Bool class func logoff(_ network: NEHotspotNetwork) -> Bool class func supportedNetworkInterfaces() -> [Any] func performSelector(onMainThread aSelector: Selector, with arg: Any?, waitUntilDone wait: Bool, modes array: [String]?) func performSelector(onMainThread aSelector: Selector, with arg: Any?, waitUntilDone wait: Bool) func perform(_ aSelector: Selector, on thr: Thread, with arg: Any?, waitUntilDone wait: Bool, modes array: [String]?) func perform(_ aSelector: Selector, on thr: Thread, with arg: Any?, waitUntilDone wait: Bool) func performSelector(inBackground aSelector: Selector, with arg: Any?) class func classForKeyedUnarchiver() -> AnyClass var classForKeyedArchiver: AnyClass? { get } func replacementObject(for archiver: NSKeyedArchiver) -> Any? class func classFallbacksForKeyedArchiver() -> [String] class func keyPathsForValuesAffectingValue(forKey key: String) -> Set<String> class func automaticallyNotifiesObservers(forKey key: String) -> Bool var observationInfo: UnsafeMutableRawPointer? func willChangeValue(forKey key: String) func didChangeValue(forKey key: String) func willChange(_ changeKind: NSKeyValueChange, valuesAt indexes: IndexSet, forKey key: String) func didChange(_ changeKind: NSKeyValueChange, valuesAt indexes: IndexSet, forKey key: String) func willChangeValue(forKey key: String, withSetMutation mutationKind: NSKeyValueSetMutationKind, using objects: Set<AnyHashable>) func didChangeValue(forKey key: String, withSetMutation mutationKind: NSKeyValueSetMutationKind, using objects: Set<AnyHashable>) func addObserver(_ observer: NSObject, forKeyPath keyPath: String, options options: NSKeyValueObservingOptions = [], context context: UnsafeMutableRawPointer?) func removeObserver(_ observer: NSObject, forKeyPath keyPath: String, context context: UnsafeMutableRawPointer?) func removeObserver(_ observer: NSObject, forKeyPath keyPath: String) func observeValue(forKeyPath keyPath: String?, of object: Any?, change change: [NSKeyValueChangeKey : Any]?, context context: UnsafeMutableRawPointer?) class var accessInstanceVariablesDirectly: Bool { get } func value(forKey key: String) -> Any? func setValue(_ value: Any?, forKey key: String) func validateValue(_ ioValue: AutoreleasingUnsafeMutablePointer<AnyObject?>, forKey inKey: String) throws func mutableArrayValue(forKey key: String) -> NSMutableArray func mutableOrderedSetValue(forKey key: String) -> NSMutableOrderedSet func mutableSetValue(forKey key: String) -> NSMutableSet func value(forKeyPath keyPath: String) -> Any? func setValue(_ value: Any?, forKeyPath keyPath: String) func validateValue(_ ioValue: AutoreleasingUnsafeMutablePointer<AnyObject?>, forKeyPath inKeyPath: String) throws func mutableArrayValue(forKeyPath keyPath: String) -> NSMutableArray func mutableOrderedSetValue(forKeyPath keyPath: String) -> NSMutableOrderedSet func mutableSetValue(forKeyPath keyPath: String) -> NSMutableSet func value(forUndefinedKey key: String) -> Any? func setValue(_ value: Any?, forUndefinedKey key: String) func setNilValueForKey(_ key: String) func dictionaryWithValues(forKeys keys: [String]) -> [String : Any] func setValuesForKeys(_ keyedValues: [String : Any]) func fileManager(_ fm: FileManager, shouldProceedAfterError errorInfo: [AnyHashable : Any]) -> Bool func fileManager(_ fm: FileManager, willProcessPath path: String) func perform(_ aSelector: Selector, with anArgument: Any?, afterDelay delay: TimeInterval, inModes modes: [RunLoopMode]) func perform(_ aSelector: Selector, with anArgument: Any?, afterDelay delay: TimeInterval) class func cancelPreviousPerformRequests(withTarget aTarget: Any, selector aSelector: Selector, object anArgument: Any?) class func cancelPreviousPerformRequests(withTarget aTarget: Any) func attemptRecovery(fromError error: Error, optionIndex recoveryOptionIndex: Int, delegate delegate: Any?, didRecoverSelector didRecoverSelector: Selector?, contextInfo contextInfo: UnsafeMutableRawPointer?) func attemptRecovery(fromError error: Error, optionIndex recoveryOptionIndex: Int) -> Bool var autoContentAccessingProxy: Any { get } class func version() -> Int class func setVersion(_ aVersion: Int) var classForCoder: AnyClass { get } func awakeAfter(using aDecoder: NSCoder) -> Any? } extension NEHotspotHelper : CVarArg { } extension NEHotspotHelper : Equatable, Hashable { var hashValue: Int { get } } |
Declaration | |
---|---|
From | class func register(options options: [String : NSObject]? = nil, queue queue: DispatchQueue, handler handler: NetworkExtension.NEHotspotHelperHandler) -> Bool |
To | class func register(options options: [String : NSObject]? = nil, queue queue: DispatchQueue, handler handler: @escaping NetworkExtension.NEHotspotHelperHandler) -> Bool |
Modified NETunnelProvider
Declaration | |
---|---|
From | class NETunnelProvider : NEProvider { func handleAppMessage(_ messageData: Data, completionHandler completionHandler: (@escaping (Data?) -> Swift.Void)? = nil) func setTunnelNetworkSettings(_ tunnelNetworkSettings: NETunnelNetworkSettings?, completionHandler completionHandler: (@escaping (Error?) -> Swift.Void)? = nil) var protocolConfiguration: NEVPNProtocol { get } var appRules: [NEAppRule]? { get } var routingMethod: NETunnelProviderRoutingMethod { get } var reasserting: Bool } |
To | class NETunnelProvider : NEProvider { func handleAppMessage(_ messageData: Data, completionHandler completionHandler: ((Data?) -> Swift.Void)? = nil) func setTunnelNetworkSettings(_ tunnelNetworkSettings: NETunnelNetworkSettings?, completionHandler completionHandler: ((Error?) -> Swift.Void)? = nil) var protocolConfiguration: NEVPNProtocol { get } var appRules: [NEAppRule]? { get } var routingMethod: NETunnelProviderRoutingMethod { get } var reasserting: Bool } |
Declaration | |
---|---|
From | func handleAppMessage(_ messageData: Data, completionHandler completionHandler: (@escaping (Data?) -> Swift.Void)? = nil) |
To | func handleAppMessage(_ messageData: Data, completionHandler completionHandler: ((Data?) -> Swift.Void)? = nil) |
Declaration | |
---|---|
From | func setTunnelNetworkSettings(_ tunnelNetworkSettings: NETunnelNetworkSettings?, completionHandler completionHandler: (@escaping (Error?) -> Swift.Void)? = nil) |
To | func setTunnelNetworkSettings(_ tunnelNetworkSettings: NETunnelNetworkSettings?, completionHandler completionHandler: ((Error?) -> Swift.Void)? = nil) |
Modified NETunnelProviderError.Code [enum]
Declaration | |
---|---|
From | enum NETunnelProviderErrorDomain : Int { case networkSettingsInvalid case networkSettingsCanceled case networkSettingsFailed } |
To | enum Code : Int { typealias _ErrorType = NETunnelProviderError case networkSettingsInvalid case networkSettingsCanceled case networkSettingsFailed } |
Modified NETunnelProviderSession
Declaration | |
---|---|
From | class NETunnelProviderSession : NEVPNConnection { func startTunnel(options options: [String : Any]? = nil) throws func stopTunnel() func sendProviderMessage(_ messageData: Data, responseHandler responseHandler: (@escaping (Data?) -> Swift.Void)? = nil) throws } |
To | class NETunnelProviderSession : NEVPNConnection { func startTunnel(options options: [String : Any]? = nil) throws func stopTunnel() func sendProviderMessage(_ messageData: Data, responseHandler responseHandler: ((Data?) -> Swift.Void)? = nil) throws } |
Declaration | |
---|---|
From | func sendProviderMessage(_ messageData: Data, responseHandler responseHandler: (@escaping (Data?) -> Swift.Void)? = nil) throws |
To | func sendProviderMessage(_ messageData: Data, responseHandler responseHandler: ((Data?) -> Swift.Void)? = nil) throws |
Modified NEVPNError.Code [enum]
Declaration | |
---|---|
From | enum NEVPNErrorDomain : Int { case configurationInvalid case configurationDisabled case connectionFailed case configurationStale case configurationReadWriteFailed case configurationUnknown } |
To | enum Code : Int { typealias _ErrorType = NEVPNError case configurationInvalid case configurationDisabled case connectionFailed case configurationStale case configurationReadWriteFailed case configurationUnknown } |
Modified NEVPNManager
Declaration | |
---|---|
From | class NEVPNManager : NSObject { class func shared() -> NEVPNManager func loadFromPreferences(completionHandler completionHandler: @escaping (Error?) -> Swift.Void) func removeFromPreferences(completionHandler completionHandler: (@escaping (Error?) -> Swift.Void)? = nil) func saveToPreferences(completionHandler completionHandler: (@escaping (Error?) -> Swift.Void)? = nil) var onDemandRules: [NEOnDemandRule]? var isOnDemandEnabled: Bool var localizedDescription: String? var `protocol`: NEVPNProtocol? var protocolConfiguration: NEVPNProtocol? var connection: NEVPNConnection { get } var isEnabled: Bool func performSelector(onMainThread aSelector: Selector, with arg: Any?, waitUntilDone wait: Bool, modes array: [String]?) func performSelector(onMainThread aSelector: Selector, with arg: Any?, waitUntilDone wait: Bool) func perform(_ aSelector: Selector, on thr: Thread, with arg: Any?, waitUntilDone wait: Bool, modes array: [String]?) func perform(_ aSelector: Selector, on thr: Thread, with arg: Any?, waitUntilDone wait: Bool) func performSelector(inBackground aSelector: Selector, with arg: Any?) class func classForKeyedUnarchiver() -> AnyClass var classForKeyedArchiver: AnyClass? { get } func replacementObject(for archiver: NSKeyedArchiver) -> Any? class func classFallbacksForKeyedArchiver() -> [String] class func keyPathsForValuesAffectingValue(forKey key: String) -> Set<String> class func automaticallyNotifiesObservers(forKey key: String) -> Bool var observationInfo: UnsafeMutableRawPointer? func willChangeValue(forKey key: String) func didChangeValue(forKey key: String) func willChange(_ changeKind: NSKeyValueChange, valuesAt indexes: IndexSet, forKey key: String) func didChange(_ changeKind: NSKeyValueChange, valuesAt indexes: IndexSet, forKey key: String) func willChangeValue(forKey key: String, withSetMutation mutationKind: NSKeyValueSetMutationKind, using objects: Set<AnyHashable>) func didChangeValue(forKey key: String, withSetMutation mutationKind: NSKeyValueSetMutationKind, using objects: Set<AnyHashable>) func addObserver(_ observer: NSObject, forKeyPath keyPath: String, options options: NSKeyValueObservingOptions = [], context context: UnsafeMutableRawPointer?) func removeObserver(_ observer: NSObject, forKeyPath keyPath: String, context context: UnsafeMutableRawPointer?) func removeObserver(_ observer: NSObject, forKeyPath keyPath: String) func observeValue(forKeyPath keyPath: String?, of object: Any?, change change: [NSKeyValueChangeKey : Any]?, context context: UnsafeMutableRawPointer?) class var accessInstanceVariablesDirectly: Bool { get } func value(forKey key: String) -> Any? func setValue(_ value: Any?, forKey key: String) func validateValue(_ ioValue: AutoreleasingUnsafeMutablePointer<AnyObject?>, forKey inKey: String) throws func mutableArrayValue(forKey key: String) -> NSMutableArray func mutableOrderedSetValue(forKey key: String) -> NSMutableOrderedSet func mutableSetValue(forKey key: String) -> NSMutableSet func value(forKeyPath keyPath: String) -> Any? func setValue(_ value: Any?, forKeyPath keyPath: String) func validateValue(_ ioValue: AutoreleasingUnsafeMutablePointer<AnyObject?>, forKeyPath inKeyPath: String) throws func mutableArrayValue(forKeyPath keyPath: String) -> NSMutableArray func mutableOrderedSetValue(forKeyPath keyPath: String) -> NSMutableOrderedSet func mutableSetValue(forKeyPath keyPath: String) -> NSMutableSet func value(forUndefinedKey key: String) -> Any? func setValue(_ value: Any?, forUndefinedKey key: String) func setNilValueForKey(_ key: String) func dictionaryWithValues(forKeys keys: [String]) -> [String : Any] func setValuesForKeys(_ keyedValues: [String : Any]) func fileManager(_ fm: FileManager, shouldProceedAfterError errorInfo: [AnyHashable : Any]) -> Bool func fileManager(_ fm: FileManager, willProcessPath path: String) func perform(_ aSelector: Selector, with anArgument: Any?, afterDelay delay: TimeInterval, inModes modes: [RunLoopMode]) func perform(_ aSelector: Selector, with anArgument: Any?, afterDelay delay: TimeInterval) class func cancelPreviousPerformRequests(withTarget aTarget: Any, selector aSelector: Selector, object anArgument: Any?) class func cancelPreviousPerformRequests(withTarget aTarget: Any) func attemptRecovery(fromError error: Error, optionIndex recoveryOptionIndex: Int, delegate delegate: Any?, didRecoverSelector didRecoverSelector: Selector?, contextInfo contextInfo: UnsafeMutableRawPointer?) func attemptRecovery(fromError error: Error, optionIndex recoveryOptionIndex: Int) -> Bool var autoContentAccessingProxy: Any { get } class func version() -> Int class func setVersion(_ aVersion: Int) var classForCoder: AnyClass { get } func awakeAfter(using aDecoder: NSCoder) -> Any? } extension NEVPNManager : CVarArg { } extension NEVPNManager : Equatable, Hashable { var hashValue: Int { get } } |
To | class NEVPNManager : NSObject { class func shared() -> NEVPNManager func loadFromPreferences(completionHandler completionHandler: @escaping (Error?) -> Swift.Void) func removeFromPreferences(completionHandler completionHandler: ((Error?) -> Swift.Void)? = nil) func saveToPreferences(completionHandler completionHandler: ((Error?) -> Swift.Void)? = nil) var onDemandRules: [NEOnDemandRule]? var isOnDemandEnabled: Bool var localizedDescription: String? var `protocol`: NEVPNProtocol? var protocolConfiguration: NEVPNProtocol? var connection: NEVPNConnection { get } var isEnabled: Bool func performSelector(onMainThread aSelector: Selector, with arg: Any?, waitUntilDone wait: Bool, modes array: [String]?) func performSelector(onMainThread aSelector: Selector, with arg: Any?, waitUntilDone wait: Bool) func perform(_ aSelector: Selector, on thr: Thread, with arg: Any?, waitUntilDone wait: Bool, modes array: [String]?) func perform(_ aSelector: Selector, on thr: Thread, with arg: Any?, waitUntilDone wait: Bool) func performSelector(inBackground aSelector: Selector, with arg: Any?) class func classForKeyedUnarchiver() -> AnyClass var classForKeyedArchiver: AnyClass? { get } func replacementObject(for archiver: NSKeyedArchiver) -> Any? class func classFallbacksForKeyedArchiver() -> [String] class func keyPathsForValuesAffectingValue(forKey key: String) -> Set<String> class func automaticallyNotifiesObservers(forKey key: String) -> Bool var observationInfo: UnsafeMutableRawPointer? func willChangeValue(forKey key: String) func didChangeValue(forKey key: String) func willChange(_ changeKind: NSKeyValueChange, valuesAt indexes: IndexSet, forKey key: String) func didChange(_ changeKind: NSKeyValueChange, valuesAt indexes: IndexSet, forKey key: String) func willChangeValue(forKey key: String, withSetMutation mutationKind: NSKeyValueSetMutationKind, using objects: Set<AnyHashable>) func didChangeValue(forKey key: String, withSetMutation mutationKind: NSKeyValueSetMutationKind, using objects: Set<AnyHashable>) func addObserver(_ observer: NSObject, forKeyPath keyPath: String, options options: NSKeyValueObservingOptions = [], context context: UnsafeMutableRawPointer?) func removeObserver(_ observer: NSObject, forKeyPath keyPath: String, context context: UnsafeMutableRawPointer?) func removeObserver(_ observer: NSObject, forKeyPath keyPath: String) func observeValue(forKeyPath keyPath: String?, of object: Any?, change change: [NSKeyValueChangeKey : Any]?, context context: UnsafeMutableRawPointer?) class var accessInstanceVariablesDirectly: Bool { get } func value(forKey key: String) -> Any? func setValue(_ value: Any?, forKey key: String) func validateValue(_ ioValue: AutoreleasingUnsafeMutablePointer<AnyObject?>, forKey inKey: String) throws func mutableArrayValue(forKey key: String) -> NSMutableArray func mutableOrderedSetValue(forKey key: String) -> NSMutableOrderedSet func mutableSetValue(forKey key: String) -> NSMutableSet func value(forKeyPath keyPath: String) -> Any? func setValue(_ value: Any?, forKeyPath keyPath: String) func validateValue(_ ioValue: AutoreleasingUnsafeMutablePointer<AnyObject?>, forKeyPath inKeyPath: String) throws func mutableArrayValue(forKeyPath keyPath: String) -> NSMutableArray func mutableOrderedSetValue(forKeyPath keyPath: String) -> NSMutableOrderedSet func mutableSetValue(forKeyPath keyPath: String) -> NSMutableSet func value(forUndefinedKey key: String) -> Any? func setValue(_ value: Any?, forUndefinedKey key: String) func setNilValueForKey(_ key: String) func dictionaryWithValues(forKeys keys: [String]) -> [String : Any] func setValuesForKeys(_ keyedValues: [String : Any]) func fileManager(_ fm: FileManager, shouldProceedAfterError errorInfo: [AnyHashable : Any]) -> Bool func fileManager(_ fm: FileManager, willProcessPath path: String) func perform(_ aSelector: Selector, with anArgument: Any?, afterDelay delay: TimeInterval, inModes modes: [RunLoopMode]) func perform(_ aSelector: Selector, with anArgument: Any?, afterDelay delay: TimeInterval) class func cancelPreviousPerformRequests(withTarget aTarget: Any, selector aSelector: Selector, object anArgument: Any?) class func cancelPreviousPerformRequests(withTarget aTarget: Any) func attemptRecovery(fromError error: Error, optionIndex recoveryOptionIndex: Int, delegate delegate: Any?, didRecoverSelector didRecoverSelector: Selector?, contextInfo contextInfo: UnsafeMutableRawPointer?) func attemptRecovery(fromError error: Error, optionIndex recoveryOptionIndex: Int) -> Bool var autoContentAccessingProxy: Any { get } class func version() -> Int class func setVersion(_ aVersion: Int) var classForCoder: AnyClass { get } func awakeAfter(using aDecoder: NSCoder) -> Any? } extension NEVPNManager : CVarArg { } extension NEVPNManager : Equatable, Hashable { var hashValue: Int { get } } |
Declaration | |
---|---|
From | func removeFromPreferences(completionHandler completionHandler: (@escaping (Error?) -> Swift.Void)? = nil) |
To | func removeFromPreferences(completionHandler completionHandler: ((Error?) -> Swift.Void)? = nil) |
Declaration | |
---|---|
From | func saveToPreferences(completionHandler completionHandler: (@escaping (Error?) -> Swift.Void)? = nil) |
To | func saveToPreferences(completionHandler completionHandler: ((Error?) -> Swift.Void)? = nil) |