Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。103件0この画像の部分の説明では変数にnilが代入されているときに「!」をつけると命令が実行されるタイミングでクラッシュすると書いてあります。(https://i.stack.imgur.com/PwDZ8.jpg)!しかし次のページのこちらの画像ではコードに「!」がついてるのに、変数にnilを代入すると書いてあります。票1クラッシュするのは実行したときにnilの変数を!で強制アンラップしたときなので、!で強制アンラップする前にnilではない値がセットされることが確実なら問題ありません。このViewControllerはStoryboardによってインスタンス化されることが前提になっています。StoryboardがViewControllerをインスタンス化するときに、@IBOutletを指定して、かつStoryboard上のUIコンポーネントを接続したプロパティはStoryboardによって自動的にプロパティのインスタンスが作られ(例の場合はUILabel)ViewControllerのプロパティに代入されます。ViewControllerのインスタンス化と@IBOutletのプロパティの代入は同時には行えません。してもViewControllerを先にインスタンス化することになります。このようにViewControllerをインスタンス化してから@IBOutletのプロパティが代入されるまでには時間のずれがあり、その間はこのlabelプロパティにはnilが設定されているということです。nilがセットされていることがほんの一瞬ですがあるために、このプロパティはOptionalにしなければなりません。実際はViewControllerが使えるようになるまでにはlabelプロパティにはStoryboardによってインスタンスが代入されているので、実行時にはこのプロパティがnilになることはない、と保証できるので!を使って強制アンラップしても、実行時にはnilではないので問題ないということです。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。9の特定の条件の通信でエラーになる。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。