我想包装一个简单的回调,以便它可以用作 Combine Publisher
。特别是NSPersistentContainer.loadPersistentStore回调,以便我可以在容器准备就绪时发布。
func createPersistentContainer(name: String) -> AnyPublisher<NSPersistentContainer, Error> {
// What goes here?
// Happy path: send output NSPersistentContainer; send completion.
// Not happy path: send failure Error; send completion.
}
例如,createPersistentContainer
上面给出的函数的内部结构是什么样的,使我能够在我的AppDelegate
.
final class AppDelegate: UIResponder, UIApplicationDelegate {
let container = createPersistentContainer(name: "DeadlyBattery")
.assertNoFailure()
.eraseToAnyPublisher()
// ...
}
大多数情况下,这归结为,你如何将回调包装在 a 中Publisher
?