SynthReel/SynthReel/Base/Extension/UserDefaults+SRAdd.swift
2025-11-20 16:59:32 +08:00

47 lines
1.2 KiB
Swift

//
// UserDefaults+SRAdd.swift
// SynthReel
//
// Created by on 2025/11/12.
// Copyright © 2025 SR. All rights reserved.
//
import Foundation
extension UserDefaults {
static func sr_setObject(_ obj: NSSecureCoding?, forKey key: String) {
let defaults = UserDefaults.standard
guard let obj = obj else {
defaults.removeObject(forKey: key)
return
}
do {
let data = try NSKeyedArchiver.archivedData(withRootObject: obj, requiringSecureCoding: true)
defaults.set(data, forKey: key)
} catch {
print("Error archiving object: \(error)")
}
}
static func sr_object<T: NSObject & NSSecureCoding>(forKey key: String, as type: T.Type) -> T? {
let defaults = UserDefaults.standard
guard let data = defaults.data(forKey: key) else {
return nil
}
do {
let object = try NSKeyedUnarchiver.unarchivedObject(ofClass: type, from: data)
return object
} catch {
print("Error unarchiving object: \(error)")
return nil
}
}
}