InterfaceBuilderでカスタムクラスを配置した場合の初期化の注意事項。
InterfaceBuilderで配置したクラスは、読み込み時に自動的に初期化されている。
従って、改めてinitを発行する必要はない。
というか、「発行してはいけない」。
せっかくOSが行ってくれた初期化を無効にしてしまう。
カスタムクラスにメッセージが伝わらない場合は、これも疑ってみると良い。
初期化が必要なときは、独自に初期化メソッドを実装し、その中で[super init]を発行しないようにする。
initはプログラム的にallocした場合にのみ必要なメソッドなのである。
0 件のコメント:
コメントを投稿