# xcode26 Beta4 UIScreen.mainがDeprecated
2025-07-24 22:25:00
Xcode 26 Beta 4で、UIScreen.main を使ったコードに非推奨の警告が出た。
警告は、contextから取得した UIScreen か traitCollection を使うよう求めている。
# Deployment TargetをiOS 26にしたプロジェクトで警告を確認した
警告を確認したプロジェクトの設定は次のとおりである。 iOS Deployment Targetは、DebugとReleaseのどちらもiOS 26である。

Minimum DeploymentsもiOS 26.0にしている。
# UIScreen.main.bounds.size の行に警告が出た
viewDidLoad() で UIScreen.main.bounds.size を取得している行に、次の警告が表示された。

警告の文面は次のとおりである。
'main' was deprecated in iOS 26.0: Use a UIScreen instance found through context instead (i.e, view.window.windowScene.screen), or for properties like UIScreen.scale with trait equivalents, use a traitCollection found through context.
置き換え先として、view.window.windowScene.screen が例示されている。
UIScreen.scale のようにtraitに相当する値がある場合は、traitCollection を使う。
この記事では、警告の確認までを扱っている。 置き換えたコードの動作はまだ確認していない。