Remove `Defaults.publisherAll` until #42 is fixed
This commit is contained in:
parent
c20b7d820c
commit
5df16e0d2e
|
@ -149,27 +149,6 @@ extension Defaults {
|
|||
|
||||
return combinedPublisher
|
||||
}
|
||||
|
||||
/**
|
||||
Convenience `Publisher` for all `UserDefaults` key change events. A wrapper around the `UserDefaults.didChangeNotification`.
|
||||
|
||||
- Parameter initialEvent: Trigger an initial event immediately.
|
||||
*/
|
||||
@available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, iOSApplicationExtension 13.0, macOSApplicationExtension 10.15, tvOSApplicationExtension 13.0, watchOSApplicationExtension 6.0, *)
|
||||
public static func publisherAll(initialEvent: Bool = true) -> AnyPublisher<Void, Never> {
|
||||
let publisher =
|
||||
NotificationCenter.default.publisher(for: UserDefaults.didChangeNotification)
|
||||
.map { _ in () }
|
||||
|
||||
if initialEvent {
|
||||
return publisher
|
||||
.prepend(())
|
||||
.eraseToAnyPublisher()
|
||||
} else {
|
||||
return publisher
|
||||
.eraseToAnyPublisher()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
@ -285,24 +285,6 @@ final class DefaultsTests: XCTestCase {
|
|||
waitForExpectations(timeout: 10)
|
||||
}
|
||||
|
||||
@available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, iOSApplicationExtension 13.0, macOSApplicationExtension 10.15, tvOSApplicationExtension 13.0, watchOSApplicationExtension 6.0, *)
|
||||
func testObserveAllCombine() {
|
||||
let key = Defaults.Key<Bool>("observeAllKey", default: false)
|
||||
let expect = expectation(description: "Observation closure being called")
|
||||
let publisher = Defaults.publisherAll().collect(3)
|
||||
|
||||
let cancellable = publisher.sink { actualValues in
|
||||
XCTAssertEqual(3, actualValues.count)
|
||||
expect.fulfill()
|
||||
}
|
||||
|
||||
Defaults[key] = true
|
||||
Defaults[key] = false
|
||||
cancellable.cancel()
|
||||
|
||||
waitForExpectations(timeout: 10)
|
||||
}
|
||||
|
||||
@available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, iOSApplicationExtension 13.0, macOSApplicationExtension 10.15, tvOSApplicationExtension 13.0, watchOSApplicationExtension 6.0, *)
|
||||
func testObserveMultipleKeysCombine() {
|
||||
let key1 = Defaults.Key<String>("observeKey1", default: "x")
|
||||
|
|
12
readme.md
12
readme.md
|
@ -397,18 +397,6 @@ Type: `func`
|
|||
|
||||
Available on macOS 10.15+, iOS 13.0+, tvOS 13.0+, and watchOS 6.0+.
|
||||
|
||||
#### `Defaults.publisherAll`
|
||||
|
||||
```swift
|
||||
Defaults.publisherAll(initialEvent: Bool = true) -> AnyPublisher<UserDefaults, Never>
|
||||
```
|
||||
|
||||
Convenience [Publisher](https://developer.apple.com/documentation/combine/publisher) for all `UserDefaults` key change events. A wrapper around the [`UserDefaults.didChangeNotification` notification](https://developer.apple.com/documentation/foundation/userdefaults/1408206-didchangenotification).
|
||||
|
||||
- Parameter `initialEvent`: Trigger an initial event immediately.
|
||||
|
||||
Available on macOS 10.15+, iOS 13.0+, tvOS 13.0+, and watchOS 6.0+.
|
||||
|
||||
#### `Defaults.removeAll`
|
||||
|
||||
```swift
|
||||
|
|
Loading…
Reference in New Issue