File tree Expand file tree Collapse file tree 2 files changed +15
-5
lines changed
Sources/ComposableArchitecture/SharedState/PersistenceKey
Tests/ComposableArchitectureTests Expand file tree Collapse file tree 2 files changed +15
-5
lines changed Original file line number Diff line number Diff line change @@ -282,9 +282,7 @@ extension AppStorageKey: PersistenceKey {
282282 }
283283
284284 public func save( _ value: Value ) {
285- SharedAppStorageLocals . $isSetting. withValue ( true ) {
286- self . lookup. saveValue ( value, to: self . store, at: self . key)
287- }
285+ self . lookup. saveValue ( value, to: self . store, at: self . key)
288286 }
289287
290288 public func subscribe(
@@ -373,13 +371,18 @@ private struct CastableLookup<Value>: Lookup {
373371 ) -> Value ? {
374372 guard let value = store. object ( forKey: key) as? Value
375373 else {
376- store. setValue ( defaultValue, forKey: key)
374+ SharedAppStorageLocals . $isSetting. withValue ( true ) {
375+ store. setValue ( defaultValue, forKey: key)
376+ }
377377 return defaultValue
378378 }
379379 return value
380380 }
381+
381382 func saveValue( _ newValue: Value , to store: UserDefaults , at key: String ) {
382- store. setValue ( newValue, forKey: key)
383+ SharedAppStorageLocals . $isSetting. withValue ( true ) {
384+ store. setValue ( newValue, forKey: key)
385+ }
383386 }
384387}
385388
Original file line number Diff line number Diff line change @@ -142,6 +142,13 @@ final class AppStorageTests: XCTestCase {
142142 defaults. count += 1
143143 XCTAssertEqual ( count, 1 )
144144 }
145+
146+ func testOptionalInitializers( ) {
147+ @Shared ( . appStorage( " count1 " ) ) var count1 : Int ?
148+ XCTAssertEqual ( count1, nil )
149+ @Shared ( . appStorage( " count " ) ) var count2 : Int ? = nil
150+ XCTAssertEqual ( count2, nil )
151+ }
145152}
146153
147154extension UserDefaults {
You can’t perform that action at this time.
0 commit comments