我想观察.EKEventStoreChanged来自异步等待 API 的通知NotificationCenter,这意味着处理异步序列。
该代码有效,但我不确定在 中创建任务(从而观察更改)是否是init()一个好主意,或者是否有更好的选择。我有点担心这是对 the 的误用init(),因为现在,如果我没看错的话,init()必须运行 the 的整个生命周期,ObservableObject但 inits 的目的只是在对象创建期间运行?
class CalendarState: ObservableObject {
// ...
init() {
// ...
Task{
await observeCalendar()
}
}
func observeCalendar() async {
for await _ in NotificationCenter.default.notifications(named: .EKEventStoreChanged) {
await loadEvents(date: date)
}
}
Run Code Online (Sandbox Code Playgroud)
欢迎任何帮助、提示或经验 - 谢谢:D