オブジェクトからの KVO 通知を購読しています。変更してはならないオブジェクトのキーパスに関する通知を受け取っているようです。
これらのオブジェクトがどのように変更されたか (つまり、どのコードによって)、通知が送信されたかを判断する最良の方法は何ですか?
理想的には、KVO 通知の原因となるオブジェクトを変更するコード行にさかのぼる何らかの方法があります。これは可能ですか?
オブジェクトからの KVO 通知を購読しています。変更してはならないオブジェクトのキーパスに関する通知を受け取っているようです。
これらのオブジェクトがどのように変更されたか (つまり、どのコードによって)、通知が送信されたかを判断する最良の方法は何ですか?
理想的には、KVO 通知の原因となるオブジェクトを変更するコード行にさかのぼる何らかの方法があります。これは可能ですか?
UIButton があり、フレームを変更するコードを知りたいとしましょう。
UIButton のサブクラスを作成し、その setFrame: メソッドをオーバーライドできます。次に、UIButton クラスの代わりに MyButton クラスを初期化します。
#import "MyButton.h"
@implementation MyButton
- (void)setFrame:(CGRect)frame
{
[super setFrame:frame]; // set the breakpoint here
}
@end
これで、UIButton のフレームが変更されるたびに、ブレークポイントで停止し、スタック トレースを監視して、フレームの変更を引き起こしたコードを調査できるようになります。