for await _ in await NotificationCenter.default
.notifications(for: UIApplication.willResignActiveNotification) {
}
why here. before NotificationCenter.default there is an “await” also ?
for await _ in {AsyncSteam} should work.
for await _ in await NotificationCenter.default
.notifications(for: UIApplication.willResignActiveNotification) {
}
why here. before NotificationCenter.default there is an “await” also ?
for await _ in {AsyncSteam} should work.
I also had to double-check about this - it’s an interesting one.
The reason for the await
before NotificationCenter.default .notifications(for: UIApplication.willResignActiveNotification)
is not because it’s an async stream (as suggested in your comment).
The name of the notification is UIApplication.willResignActiveNotification
and the whole UIApplication
class is on @MainActor
— thus when accessing the name property from an other task you need to use await
.
If you wanted, you could optimize the code a little and store the value of UIApplication.willResign...
into a local constant while you’re on the main actor and use the local variable directly to avoid the extra await in the loops.