Swift UIApplication 不在范围内

Lar*_*ars 6 uiapplication swift swiftui

我想在出现特定视图时更改 isIdleTimerDisabled 。在 SwiftUI 中我使用

.onAppear { 
    UIApplication.shared.isIdleTimerDisabled = true 
}
.onDisappear { 
    UIApplication.shared.isIdleTimerDisabled = false 
}
Run Code Online (Sandbox Code Playgroud)

但即使import UIKit我收到警告

在范围内找不到“UIApplication”

我该如何解决这个问题?找了一个多小时没有找到解决办法。

Zap*_*hod 5

您不需要导入UIKit,它应该可以与SwiftUI.

问题可能是你的目标。该文件仅在 iOS 或 iPadOS 应用程序目标上使用吗?

或者它是否也被用在诸如 ShareExtension 之类的扩展中?

如果是,您将无法UIApplication在代码中访问。如果此代码在扩展和应用程序之间共享,则应使用条件编译来避免此问题。

  • 哦,是的,该文件有一个 WatchKit 扩展。“#if os(iOS)”解决了这个问题。谢谢。 (2认同)