Как принять общие ресурсы CloudKit с новым жизненным циклом приложения SwiftUI?
В мире iOS 13 у меня был такой код:
class SceneDelegate: UIResponder, UIWindowSceneDelegate {
func windowScene(_ windowScene: UIWindowScene, userDidAcceptCloudKitShareWith cloudKitShareMetadata: CKShare.Metadata) {
// do stuff with the metadata, eventually call CKAcceptSharesOperation
}
}
Я переношу свое приложение на новый жизненный цикл приложения SwiftUI и не могу понять, где разместить этот метод. Раньше он жил в AppDelegate до iOS13, и я попытался вернуться к нему, но версия AppDelegate никогда не вызывается.
Похоже, что нет SceneDelegateAdaptor, похожего на UIApplicationDelegateAdaptor, который обеспечил бы мост к старому коду.
Итак, я потерялся. Как принять общие ресурсы CloudKit с жизненным циклом приложения SwiftUI?
1 ответ
Вы по-прежнему можете использовать AppDelegate с новым жизненным циклом SwiftUI до тех пор, пока Apple не выпустит API-интерфейсы, чтобы справиться с этим изначально в жизненном цикле приложения SwiftUI.
class AppDelegate: NSObject, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
return true
}
}
@main
struct MyApp: App {
@UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
var body: some Scene {
WindowGroup {
ContentView()
}
}
}