シングルビューアプリが作成された場合、FooViewそのサブクラスを使用UIViewして、
NSLog(@"hello");
でdrawRect、それからそれは印刷されます。
CALayerそして、呼び出されたのサブクラスを作成し、CoolLayerこのメソッドをFooView.m:に追加するとします。
+(Class) layerClass {
return [CoolLayer class];
}
FooView.mそして、の終わりにdrawRect、
NSLog(@"layer's class is %@", self.layer.class);
その後CoolLayer、印刷されます。つまり、ビューの下にあるレイヤーはCoolLayerです。
しかし、以下が追加された場合CoolLayer.m:
-(void) display {
}
これは、レイヤーを再描画するために自動的に呼び出されるメソッドであり(と同様drawRect)、NSLog印刷されません。アプリが無限ループに入った可能性があります。(touchesBeganNSLogメッセージを出力する私のものでさえ印刷されていません)。ブレークポイントがに設定されている場合、ブレークポイントはdisplayそこで一度停止しますが、プログラムを続行すると、ブレークポイントは二度と到達しませんdisplay。これの何が問題になっていて、どうすれば修正できますか?