Let AppKeychain not be static only

This commit is contained in:
Danny Moesch 2019-07-20 23:31:13 +02:00
parent 5527c98568
commit b42401343d
6 changed files with 34 additions and 32 deletions

View file

@ -9,36 +9,38 @@
import KeychainAccess
public class AppKeychain {
public static let shared = AppKeychain()
private static let keychain = Keychain(service: Globals.bundleIdentifier, accessGroup: Globals.groupIdentifier)
private let keychain = Keychain(service: Globals.bundleIdentifier, accessGroup: Globals.groupIdentifier)
.accessibility(.whenUnlockedThisDeviceOnly)
.synchronizable(false)
public static func add(data: Data?, for key: String) {
public func add(data: Data?, for key: String) {
keychain[data: key] = data
}
public static func add(string: String?, for key: String) {
public func add(string: String?, for key: String) {
keychain[key] = string
}
public static func contains(key: String) -> Bool {
public func contains(key: String) -> Bool {
return (try? keychain.contains(key)) ?? false
}
public static func get(for key: String) -> Data? {
public func get(for key: String) -> Data? {
return try? keychain.getData(key)
}
public static func get(for key: String) -> String? {
public func get(for key: String) -> String? {
return try? keychain.getString(key)
}
public static func removeContent(for key: String) {
public func removeContent(for key: String) {
try? keychain.remove(key)
}
public static func removeAllContent() {
public func removeAllContent() {
try? keychain.removeAll()
}
}