# 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である。

iOS Deployment Target

Minimum DeploymentsもiOS 26.0にしている。

iOS Minimum Deployment

# UIScreen.main.bounds.size の行に警告が出た

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

Warning

警告の文面は次のとおりである。

'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 を使う。

この記事では、警告の確認までを扱っている。 置き換えたコードの動作はまだ確認していない。