将某些代码添加到XCode中的一个文件中将导致在试图运行该文件的预览时显示以下错误:
Compiling failed: replaced accessor for 'keyWindow' occurs in multiple places.
只有在文件中使用以下代码时才会发生此错误:
extension UIApplication {
var keyWindow: UIWindow? {
return UIApplication.shared.connectedScenes
.filter { $0.activationState == .foregroundActive }
.first(where: { $0 is UIWindowScene })
.flatMap({ $0 as? UIWindowScene })?.windows
.first(where: \.isKeyWindow)
}
var keyWindowPresentedController: UIViewController? {
var viewController = self.keyWindow?.rootViewController
if let presentedController = viewController as? UITabBarController {
viewController = presentedController.selectedViewController
}
while let presentedController = viewController?.presentedViewController {
if let presentedController = presentedController as? UITabBarController {
viewController = presentedController.selectedViewController
} else {
viewController = presentedController
}
}
return viewController
}
}我对UIKit知之甚少,这段代码是从网上复制/粘贴的。为什么这段代码破坏了我的预览,以及如何修复它?
我在macOS蒙特里运行macOS 13.4.1
发布于 2022-06-22 05:28:56
UIApplication已经具有keyWindow属性,而且工作空间中似乎已经有其他具有相同属性的扩展,所以只需为您使用不同的名称,如
extension UIApplication {
var currentWindow: UIWindow? {*或者找出彼此是谁,看看你是否可以重用它。
https://stackoverflow.com/questions/72705844
复制相似问题