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()
// ...
}
ほとんどの場合、これは次のように要約されますPublisher
。