*

画面遷移設定時にありがちなエラー – コタツと台所にて作るアプリ 8

   

PAK75_nantekottabag20141123110853500 (1)

画面遷移を設定するまでに既にいくつか壁にぶつかっている状態。

開発スピードが遅くなるのは覚悟の上だったが、まさかこんな出だしから盛大につまずくとは先行きが不安すぎる。

軽く11月末と言った自分を呪ってやりたい。

そんな事を思いながら、お湯を一口飲み、買っておいた「コアラのマーチ」を開ける。

すると、最初に取り出した一粒は、泣いている「盲腸コアラ」。

もう、ほんと泣きたくなってきた。

画面遷移設定時のエラー

前回の記事で最後の方にさらっと画面遷移ができたと書きましたが、実は設定時にエラーが一つ発生していました。

NavigationControllerをメニュー>Editor>Embed inから選択して、シュミレータを起動したら、以下のエラーが発生しました。

Failed to instantiate the default view controller for UIMainStoryboardFile ‘Main’ – perhaps the designated entry point is not set?

(Google翻訳)
おそらく、指定されたエントリポイントが設定されていません – UIMainStoryboardFile 「メイン」のデフォルトのビューコントローラをインスタンス化に失敗しました?

Googleマルチリンガル先生の訳を見てもなんのことだが、さっぱり。。。

ということで、エラーをそのままコピーして聞いてみることに。

すると次のサイト様に書いてありました。

iPhone開発 perhaps the designated entry point is not set? エラー

つまりはInitial Scene(最初のシーン)の指定がないから、エラーとなっているようでした。

ということで、早速設定しました。

スクリーンショット 2015-01-23 6.00.57

Xcode6では、右ペインのAttributes inspectorを選択して、ViewControllerのTitleの下に「Is Initial View Controller」項目があるので、そこをチェックします。

これでシュミレーターが動くようになりました。

気になるワーニング

StoryBoardで画面を設定していると、以下のワーニングの表示もされました。

Unsupported Configuration Scene is unreachable due to lack of entry points and does not have an identifier for runtime access via -instantiateViewControllerWithIdentifier

(Google翻訳)
サポートされていない設定のシーンが原因エントリポイントがないために到達できないと-instantiateViewControllerWithIdentifierを経由して、実行時にアクセスするための識別子を持っていない

これも何のことを言っているのか。。。

正直ワーニングなので動きはします。

ですから、できれば時間ができるまで放っておきたいと思うのですが、長期間放置した結果、ワーニングの影響範囲が広がって対応に時間がかかったら大変です。

それに常に黄色いマークが出続けているのも、精神衛生上よろしくありません。

ですので、これも解決方法を調べました。

【エラー】Unsupported Configuration Sceneis…

StoryBoardIDが設定されていないから起きるワーニングのようです。

identifier for runtime access (実行時にアクセスする為の識別子)というのは、どうやらStoryBoardIDのようです。

ですので、こちらも設定しました。

スクリーンショット 2015-01-23 6.16.52

こちらは右ペインのShow the identity inspectorを選択して、Identityの下のStoryboardIDを設定すればOKです。

無事にワーニングが消えました。

ただ、このワーニングは最初の時点ではとくに設定していなくても出てこないんですよね。

NavigationControllerを設定する際に必要なのかもしれません。未確認ですが。

根気よく障害をとり覗いていく。

日本料理の料理人の方は、煮物などでは何度もアク取りをして雑味がでないようにするそうです。

根気よく手間暇かけることで、美味しい料理ができる。

プログラムも一緒で根気よく手間暇をかけて、障害を取り除いていけば、素晴らしいプログラムになるんです。。。という例えを思い浮かんだのですが。

そもそもアクと違って、障害は発生したら動かないし、障害を取り除いたところで、素晴らしいプログラムかどうかはまったく別の問題であって。

結局、エラーが発生しても「フッ。性懲りも無く現れたな。お前など消し炭にしてくれるわ!」という前のめり気味の気概が必要だと思う今日この頃です。

 - Swift, Xcode, アプリ, ライフ