[書籍]たった2日でマスターできるiPhoneアプリ開発集中講座で「はまった」点と解決方法【2日目】


このメモでは、書籍「たった2日でマスターできるiPhoneアプリ開発集中講座 Xcode 10 Swift 4.2対応を読みながら試していく際に、手順通りに行っても同じように実行できずに、はまった点と解決方法について述べています。この記事は、2日目分となります。(1日目分はこちらです)

【2日目】

Page 問題点 原因 解決方法 備考
P215 プロジェクトの作成方法が書いていない。 すでに何回もやっているので省いた? これまでのプロジェクトと同様に作成する。名前は、「MyTimer」とする。 新規に作成できると、このページと同じ状態になる。
P237 保存場所の選択画面が、図と違う。 フォルダの表示方法が、Listではなく、Column(3列表示)になっている。 3列表示になっている場合は、MyTimerの中のMyTimerフォルダ(中央の列のMyTimerフォルダ)を選択する。 List表示に切り替えると書籍と同じになる。
P238 SettingViewControllerが、外側のMyTimerフォルダ内に作成されている。 NewFile...を選択する際に、内側のMyTimerフォルダ内で右クリックしなかった。 NavigatorのSettingViewController.swiftをドラッグ&ドロップして、内側のMyTimer内に移動する。 実際のファイルの作成位置も一つ内側のフォルダに移動される。
P253 \が入力できない。 キーボードによっては、「\」キーを押しても違う文字が入力される。 「バックスラッシュ」と入力してから変換する。 「¥」では代用できないようだ。書籍のP255によると、日本語キーボードでは、「option (Alt)」+「¥」でも可能とのこと。
P278 Debug View Hierarchyボタンをクリックしたら、元のレイアウトに戻れない。 通常モード?を表示するボタンがない 画面の一番左上の「Show the Project navigator」ボタンをクリックし、ViewController.swiftを再度選択する。 コードを表示するだけなら、中央のエディタエリア上部にある「<」(Go Back)ボタンでも戻ることができる。
P309 TwitterとFacebookに投稿しようとすると落ちる。それ以外のメールやメモに追加などでは落ちない。 機種によっては画像のサイズが大きすぎるため、落ちるとのこと。 画像を縮小する必要があるが、現時点では、コードが複雑となるため、このまま進める。 公式サポートページのWebフォームより問い合わせると、すぐに(数時間で)回答をいただきました。
P328 Document Outlineに、Effect View Controllerではなく、View Controllerが2つある。 3-2の手順をまだ実行していない。 3-2の手順を実行する。 画面は、実行後の状態で、実行前は、図と異なります。
P334 Add 13 Constraints ではなく、 Add 14 Constraints になる。 ボタンが2つ重なっていて見えなくなっていたようです。 一度制約を解除して、不要なボタンがあれば削除して、やり直す。 制約を解除するには、右上のShow the Size Inspectorボタンを押して、各ボタンの全てのConstrainsをdeleteボタンで削除する。
P335 ボタンが上下に3つ綺麗に並ばない 制約付けする前のボタンの位置が上下に3つ並んでいない。 一度制約を解除して、ある程度ボタンを上下に3つ並べてからやり直す。 ボタンが左右に並ぶことがあると、そのボタン同士で左右の制約ができてしまう。
P347 Instance member 'createCGImage' cannot be used on type 'CIContext';というエラーが出る。 CIContext.createCGImage()になっている。 インスタンスのciContext.createCGImage() (小文字で始まる)に修正する。 大文字と小文字の違いで全く別の意味になるので注意する。
P385 シミュレータではなく、実機で実行しようとすると、「App Installation faild - The maximum number of apps for free development profiles has been reached」エラーとなる。 実機に4つ目のアプリを登録しようとした。 「設定」ー「一般」-「プロファイルとデバイス管理」-「デベロッパAPP」-「Appを削除」を行ってから、再度実行する。または以前に作成したいずれかのAppアイコンを長押しして、✖️をタップして削除しても良い。 Xcodeの無料版では実機に一度に配置できるアプリの数は3つまでという制限がある。シミュレータでは数の制限が無いようです。
P386 req_urlがnilになってしまい、正常にリクエストURLが作成されない。Outputに、(lldb)と表示される。 URLとして不正な、エンコードされていない文字(全角文字など)が入っている。 URLとして使用できない文字が入っていないかどうか確認し、あったら削除する。 私の場合は、&が全角の&になっていた箇所があった。

1日目分の記事からもう12日も経ってしまいましたが、なんとかSwiftによるiPhoneアプリの開発をマスターできました。思ったよりも時間がかかってしまいましたが、以前Objective-Cで挑戦したときよりは、細かい内容まで時間をかけて考えられたので理解が深まった気がします。また、以前(〜2015年)は、有料のApple Developer Program に参加しないと、実機での開発はできなかったのですが、App Storeに載せないのであれば、無料でも開発できるように変わっていたりして、iPhoneアプリの開発に対して、敷居が下がっている気がします。今後は、Deep Learningとアプリを組み合わせたりしていけたらと思います。「2日でできる!」に釣られて本書を買ってしまいましたが、アプリ開発の理解の第一歩として良いきっかけでした。最後になりましたが、Webフォームでのお問い合わせにすぐに応じていただいたサポートの皆様、ありがとうございました。