일모도원(日暮途遠) 개발자
[iOS오류수정] 'windows' was deprecated in iOS 15.0: Use UIWindowScene.windows on a relevant window scene instead 본문
iOS개발/오류수정
[iOS오류수정] 'windows' was deprecated in iOS 15.0: Use UIWindowScene.windows on a relevant window scene instead
달님개발자 2023. 2. 23. 20:26아래와 같은 경고가 보인다.
'windows' was deprecated in iOS 15.0: Use UIWindowScene.windows on a relevant window scene instead
원인은 이 코드이다.
return UIApplication.shared.windows.first?.windowScene?.interfaceOrientation.isLandscape ?? false
가로 모드인지 확인하는 코드를 아래처럼 가지고 있는데 이제 경고가 난다.
extension UIApplication {
static var isLandscape: Bool {
if AppConts.IS_MACOS {
return true
} else {
if #available(iOS 13.0, *) {
return UIApplication.shared.windows.first?.windowScene?.interfaceOrientation.isLandscape ?? false
} else {
return UIApplication.shared.statusBarOrientation.isLandscape
}
}
}
}
다음처럼 하면 경고는 더이상 안나온다.
let scenes = UIApplication.shared.connectedScenes.first as? UIWindowScene
let windowFirst = scenes?.windows.first
return windowFirst?.windowScene?.interfaceOrientation.isLandscape ?? false
사실 이제 iOS 13밑으로는 지원안해서 아래처럼 분기할 필요는 없지만 혹시나 해서 그냥둔다.
extension UIApplication {
static var isLandscape: Bool {
if AppConts.IS_MACOS {
return true
} else {
if #available(iOS 13.0, *) {
let scenes = UIApplication.shared.connectedScenes.first as? UIWindowScene
let windowFirst = scenes?.windows.first
return windowFirst?.windowScene?.interfaceOrientation.isLandscape ?? false
} else {
return UIApplication.shared.statusBarOrientation.isLandscape
}
}
}
}