47 lines
1.2 KiB
Swift
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
|
|
}
|
|
}
|
|
}
|