今回は、表示されたエラーメッセージが問題を的確に表したものではないみたいです。実際に試してみたところ、原因は 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