-
Notifications
You must be signed in to change notification settings - Fork 1
/
UserDefaults+Key.swift
94 lines (72 loc) · 2.2 KB
/
UserDefaults+Key.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
import Foundation
extension UserDefaults {
public struct Key: RawRepresentable {
public typealias RawValue = String
private var _rawValue: RawValue
public var rawValue: RawValue {
return _rawValue
}
public init(_ rawValue: String) {
self.init(rawValue: rawValue)
}
public init(rawValue: RawValue) {
_rawValue = rawValue
}
}
}
extension UserDefaults {
public func object(for key: Key) -> Any? {
return object(forKey: key.rawValue)
}
public func set(_ value: Any?, for key: Key) {
set(value, forKey: key.rawValue)
}
public func removeObject(for key: Key) {
removeObject(forKey: key.rawValue)
}
public func string(for key: Key) -> String? {
return string(forKey: key.rawValue)
}
public func array(for key: Key) -> [Any]? {
return array(forKey: key.rawValue)
}
public func dictionary(for key: Key) -> [String : Any]? {
return dictionary(forKey: key.rawValue)
}
public func data(for key: Key) -> Data? {
return data(forKey: key.rawValue)
}
public func stringArray(for key: Key) -> [String]? {
return stringArray(forKey: key.rawValue)
}
public func integer(for key: Key) -> Int {
return integer(forKey: key.rawValue)
}
public func float(for key: Key) -> Float {
return float(forKey: key.rawValue)
}
public func double(for key: Key) -> Double {
return double(forKey: key.rawValue)
}
public func bool(for key: Key) -> Bool {
return bool(forKey: key.rawValue)
}
public func url(for key: Key) -> URL? {
return url(forKey: key.rawValue)
}
public func set(_ value: Int, for key: Key) {
set(value, forKey: key.rawValue)
}
public func set(_ value: Float, for key: Key) {
set(value, forKey: key.rawValue)
}
public func set(_ value: Double, for key: Key) {
set(value, forKey: key.rawValue)
}
public func set(_ value: Bool, for key: Key) {
set(value, forKey: key.rawValue)
}
public func set(_ url: URL?, for key: Key) {
set(url, forKey: key.rawValue)
}
}