11class UserPersistentStore : UserPersistentRepository {
2- static let standard = UserPersistentStore ( defaultsSuiteName: defaultsSuiteName)
3- private static let defaultsSuiteName = " temporary.suite.name " // TBD
2+ static let standard = UserPersistentStore ( defaultsSuiteName: defaultsSuiteName) !
3+ private static let defaultsSuiteName = WPAppGroupName // TBD
44
55 private let userDefaults : UserDefaults
66
@@ -11,28 +11,104 @@ class UserPersistentStore: UserPersistentRepository {
1111 userDefaults = suiteDefaults
1212 }
1313
14- // MARK: - UserePersistentRepositoryWriter
15- func set( _ value: Any ? , forKey defaultName: String ) {
16- userDefaults. set ( value, forKey: defaultName)
14+ // MARK: - UserPeresistentRepositoryReader
15+ func object( forKey key: String ) -> Any ? {
16+ if let object = userDefaults. object ( forKey: key) {
17+ return object
18+ }
19+
20+ return UserDefaults . standard. object ( forKey: key)
21+ }
22+
23+ func string( forKey key: String ) -> String ? {
24+ if let string = userDefaults. string ( forKey: key) {
25+ return string
26+ }
27+
28+ return UserDefaults . standard. string ( forKey: key)
29+ }
30+
31+ func bool( forKey key: String ) -> Bool {
32+ userDefaults. bool ( forKey: key) || UserDefaults . standard. bool ( forKey: key)
33+ }
34+
35+ func integer( forKey key: String ) -> Int {
36+ let suiteValue = userDefaults. integer ( forKey: key)
37+ if suiteValue != 0 {
38+ return suiteValue
39+ }
40+
41+ return UserDefaults . standard. integer ( forKey: key)
42+ }
43+
44+ func float( forKey key: String ) -> Float {
45+ let suiteValue = userDefaults. float ( forKey: key)
46+ if suiteValue != 0 {
47+ return suiteValue
48+ }
49+
50+ return UserDefaults . standard. float ( forKey: key)
51+ }
52+
53+ func double( forKey key: String ) -> Double {
54+ let suiteValue = userDefaults. double ( forKey: key)
55+ if suiteValue != 0 {
56+ return suiteValue
57+ }
58+
59+ return UserDefaults . standard. double ( forKey: key)
60+ }
61+
62+ func array( forKey key: String ) -> [ Any ] ? {
63+ let suiteValue = userDefaults. array ( forKey: key)
64+ if suiteValue != nil {
65+ return suiteValue
66+ }
67+
68+ return UserDefaults . standard. array ( forKey: key)
69+ }
70+
71+ func dictionary( forKey key: String ) -> [ String : Any ] ? {
72+ let suiteValue = userDefaults. dictionary ( forKey: key)
73+ if suiteValue != nil {
74+ return suiteValue
75+ }
76+
77+ return UserDefaults . standard. dictionary ( forKey: key)
78+ }
79+
80+ // MARK: - UserPersistentRepositoryWriter
81+ func set( _ value: Any ? , forKey key: String ) {
82+ userDefaults. set ( value, forKey: key)
83+ UserDefaults . standard. removeObject ( forKey: key)
84+ }
85+
86+ func set( _ value: Int , forKey key: String ) {
87+ userDefaults. set ( value, forKey: key)
88+ UserDefaults . standard. removeObject ( forKey: key)
1789 }
1890
19- func set( _ value: Int , forKey defaultName: String ) {
20- userDefaults. set ( value, forKey: defaultName)
91+ func set( _ value: Float , forKey key: String ) {
92+ userDefaults. set ( value, forKey: key)
93+ UserDefaults . standard. removeObject ( forKey: key)
2194 }
2295
23- func set( _ value: Float , forKey defaultName: String ) {
24- userDefaults. set ( value, forKey: defaultName)
96+ func set( _ value: Double , forKey key: String ) {
97+ userDefaults. set ( value, forKey: key)
98+ UserDefaults . standard. removeObject ( forKey: key)
2599 }
26100
27- func set( _ value: Double , forKey defaultName: String ) {
28- userDefaults. set ( value, forKey: defaultName)
101+ func set( _ value: Bool , forKey key: String ) {
102+ userDefaults. set ( value, forKey: key)
103+ UserDefaults . standard. removeObject ( forKey: key)
29104 }
30105
31- func set( _ value: Bool , forKey defaultName: String ) {
32- userDefaults. set ( value, forKey: defaultName)
106+ func set( _ url: URL ? , forKey key: String ) {
107+ userDefaults. set ( url, forKey: key)
108+ UserDefaults . standard. removeObject ( forKey: key)
33109 }
34110
35- func set ( _ url : URL ? , forKey defaultName : String ) {
36- userDefaults. set ( url , forKey: defaultName )
111+ func removeObject ( forKey key : String ) {
112+ userDefaults. removeObject ( forKey: key )
37113 }
38114}
0 commit comments