init は「そのオブジェクトそのもの」の初期化につかうべし。

awakeFromNib は、Nibファイルからロードされ終わった後に
呼ばれる。注意点は、メインの Nib はアプリの起動時に1回
呼ばれるだけだが、Nibによっては必要時にロードされるもの
だってあるって事だ。

例えばちょっと込み入ったドキュメントの場合、ドキュメント
を処理するUIを別のNibにまとめておいて、ドキュメントを開
くごとに Nib をロードするという手がある。こういう時に、
awakeFromNib はロードされるごとにそのインスタンスへ送ら
れる。

applicationDidFinishLaunching はアプリケーションが起動
されたとき必ず1回実行される。漏れなら、UserDefaultsの
処理はここに書くな。もちろん、時と場合によりけりなので
一概にはいえんが。

単純なNib一個のアプリならどれを使っても一緒に見えるが、
複数Nibを活用した大きいアプリを書く時にこの三つの区別
は重要になる。