awakeFromNibはnibファイルがオープンされた際に1度だけ呼び出されるメソッドです。
これは、これで正しいのですが、1つのオブジェクトに1度だけ送信されるメッセージではないという事に注意が必要です。
つまり
あるオブジェクトAが、Nibファイルのオープンにより実体化された際にawakeFromNibメッセージを一度受け取ります。
続いて、そのオブジェクトAが別のnibファイル(例えばダイアログとか)をオープンする際に、loadNibNamedメソッドのownerに自分自身を指定すると・・・
先ほど書いたようにnib内のすべてのオブジェクトに対して準備ができたよというメッセージawakeFromNibが送られるので、filesOwnerにもメッセージが送信される事になります。
つまり、このオブジェクトAは、自信が実体化された場合のほかに、自信がオープンしたnibファイルが実態化するごとに複数回awakeFromNibメッセージを受け取る事になります。
したがって、awakeFromNibメソッド内では、データの初期化などはしない方が賢明だという事です。
これをやってしまうと、アプリケーションは正しく動作するものの、ダイアログなどを表示した瞬間にデータがリセットされるトラブルが発生します。