今回は、表示されたエラーメッセージが問題を的確に表したものではないみたいです。実際に試してみたところ、原因は UIScreen が mainScreen メソッドを持っていないことにあるようでした。
おそらく mainScreen メソッドは古いバージョンの Swift にあったもので、今は main プロパティーに変更されています。それを使うようにコードを修正することで、今回のエラーは解消できる様子でした。
swift
1let
2screenWidth: Double = Double(UIScreen.main.bounds.size.width)
問題を絞っていくときの進め方(参考)
今回の場合、型が一致していないというメッセージから Double(UIScreen あたりが怪しいと目星をつけていらしたとのことで、それ自体は的確な疑い方だったように思います。
そうした時に、Double 型のイニシャライザーに渡している UIScreen.mainScreen().bounds.size.width の値が適切であるかを見ていくことになると思うのですけれど、型が違うと言われているので、最終的な width の型が何かを調べてみます。
そのプロパティーの型が何かを調べるときには、Xcode を使っているなら、通常であればそのプロパティーを「option キーを押しながらクリック」すると判ります。ただ、このときに「No Quick Help」と表示されて、上手く確認できないことがわかりました。それならその手前の size はどうだろう、と同じ手順で調べてみても確認できず、そうして順番に調べて行って、結局 mainScreen() まで確認できないことがわかります。UIScreen はしっかり確認できるので、そうなると mainScreen() が間違っていそう(存在しなさそう)なことが窺えてきます。
ここから先は mainScreen が新しいバージョンでは main に変更されているということに辿り着かないといけなくて、これ以上の解決は知識を深めていかないと難しいところかもしれないですけれど、問題箇所はほぼ特定できているので、最初よりはだいぶ調べやすくなっていると思います。
2021/08/12 11:02