Mad*_*rea 2 objective-c swift swiftui uiscenedelegate
let scene = UIApplication.shared.connectedScenes.first
if let sd: SceneDelegate = (scene?.delegate as? SceneDelegate) {
let window = sd.window
}
Run Code Online (Sandbox Code Playgroud)
这是 Swift 语言,我想将其转换为 Objective-C 语言。我已经尝试过这个:
UIScene *scene = [[[[UIApplication sharedApplication]connectedScenes]allObjects]firstObject];
Run Code Online (Sandbox Code Playgroud)
但现在没有了SceneDelegate;在 Objective-C 中,有 UIKit 的UIWindowSceneDelegate.
我也无法访问 UIScenedelegate。Scenedelegate 在 Swift 中,我试图在 Objective-C 中获取窗口,但现在我无法在 swiftUI 中访问窗口。
检查scene.delegate以确保它符合协议,然后将协议投射到其上,以便编译器允许您使用协议属性和/或方法。
UIScene *scene = [[[[UIApplication sharedApplication] connectedScenes] allObjects] firstObject];
if([scene.delegate conformsToProtocol:@protocol(UIWindowSceneDelegate)]){
UIWindow *window = [(id <UIWindowSceneDelegate>)scene.delegate window];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2270 次 |
| 最近记录: |