2011年11月21日月曜日

nib(xib)で配置したクラスのinitについて

InterfaceBuilderでカスタムクラスを配置した場合の初期化の注意事項。

InterfaceBuilderで配置したクラスは、読み込み時に自動的に初期化されている。
従って、改めてinitを発行する必要はない。
というか、「発行してはいけない」。
せっかくOSが行ってくれた初期化を無効にしてしまう。

カスタムクラスにメッセージが伝わらない場合は、これも疑ってみると良い。

初期化が必要なときは、独自に初期化メソッドを実装し、その中で[super init]を発行しないようにする。


initはプログラム的にallocした場合にのみ必要なメソッドなのである。

0 件のコメント:

コメントを投稿