update.メインの内容は完全にこちらの記事の受け売りですが、勉強になったので、整理を兼ねて残します。varの使用について追記しました。※2017/10/03:Swift4の書き方に修正しました。Closureについて調べてみました。Closureというようです。コードを見た方が早いと思うので、公式リファレンスのサンプルコードを載せます。初期値として与えています。boardColorsの初期値はクロージャ内で算出されたtemporaryBoardの値になります。初期化されているので、下記のように使用できます。"false"注意点クロージャの最後に()をつけること()をつけることで、クロージャが即実行され、ストアドプロパティにクロージャから返った値が代入されます。クロージャの中ではselfや他のプロパティ、メソッドを使用できませんクロージャの実行時にはまだそれぞれ初期化されていないためです。viewDidLoadの肥大化を防ぐここからが本題ですが、はじめに述べたように、完全にこちらの記事の受け売りです。笑まずは、従来の書き方を見てみましょう。}}topViewやimageViewなど、ViewController内の他の場所でも使用したい場合には、「まずviewの初期化だけしておき、viewDidLoadで細かい設定をした上でaddSubviewする」という書き方をします。私もよくやることがあります。問題点この書き方での問題点としては、viewDidLoadで「各viewの設定」「各viewの設置」という2種類のことを行うことから、viewの数が増える分だけコードの見通しの悪さを生じさせる点です。活用し、「各viewの設定」を切り分けることでviewDidLoadを簡潔に書くことができるようです。}}こちらでは、「各viewの設定」がそれぞれのクロージャ内で行われ、それぞれのプロパティは設定済みのviewを初期値で持つことができるので、viewDidLoad内ではいきなりaddSubviewすることができます。これによって、viewDidLoadでは「各viewの設置」を行うという役割に専念できています。どこで何がされているかがとても分かりやすくなったと思います。終わりにこれを書いている段階では、簡単なサンプルは動かしてみましたが、実際のアプリケーションの中で使ってはいないので、これから取り入れていこうと思います。Closure」についての整理という意味で書き残しました。Closureで初期化するプロパティは、そのクラスや構造体の初期化が完了する前に初期値が確定している必要があります。Closureによる初期化もそのクラスや構造体の初期化完了前に実行されることは明白です。Closure内で使用することはできません。varを使用することでこの問題は解決できます。propertyといい、クラスや構造体の初期化時には初期化されず、初めてそのプロパティにアクセスした時に初期値がセットされます。propertyの初期化タイミングはそのクラスや構造体が初期化された後になることがわかります。Closureでセットする際には、そのクロージャ内でselfを使用することができるようになります。例のごとく、参考サイトのコードだとこのような感じです。}()}下記はエラーになる。多鹿@taji-taji植物系エンジニア。こんなiOSアプリ作りました。upLoginユーザーは見つかりませんでした。