[iPhone]InterFaceBuilderに設定してあるオブジェクトの初期化にはinitWithCoderもしくは、awakeFromNib
(IBを使って)nibファイルにオブジェクトを引き充てた場合、nibからオブジェクトインスタンスが読み込まれる時、initもinitWithFrameも呼び出されない。
初期化処理的なコードを記載したいときは、initWithCoderを使う。
とのこと。
もうひとつnibから読み込まれたときに実行されるメソッドでawakeFromNibというメソッドがある。
nibファイルを読み込んでメモリ上にインスタンスが復元された後に呼びだされる、とのこと。
(initWithCoderはそうじゃないないのか??)
こちらはIBのGUIで設定したパラメータを取得したときに使う。
らしい。
イマイチ使い分けがわからんのだけど、定義は
-(void) awakeFromNib; -(id)initWithCoder:(NSCoder*)coder;
なので、initWithCoderは引数があって、戻り値を返すような仕様。
(selfを戻すらしい)
根本的にどういうものなのかはまだよくわからん。。
ちなみに実行される順番としては、
initWithCoder→awakeFromNib
って感じでこれは予想通り。
Tweet