0

オブジェクトからの KVO 通知を購読しています。変更してはならないオブジェクトのキーパスに関する通知を受け取っているようです。

これらのオブジェクトがどのように変更されたか (つまり、どのコードによって)、通知が送信されたかを判断する最良の方法は何ですか?

理想的には、KVO 通知の原因となるオブジェクトを変更するコード行にさかのぼる何らかの方法があります。これは可能ですか?

4

2 に答える 2

0

UIButton があり、フレームを変更するコードを知りたいとしましょう。

UIButton のサブクラスを作成し、その setFrame: メソッドをオーバーライドできます。次に、UIButton クラスの代わりに MyButton クラスを初期化します。

#import "MyButton.h"

@implementation MyButton

- (void)setFrame:(CGRect)frame
{
  [super setFrame:frame]; // set the breakpoint here
}

@end

これで、UIButton のフレームが変更されるたびに、ブレークポイントで停止し、スタック トレースを監視して、フレームの変更を引き起こしたコードを調査できるようになります。

于 2013-07-10T17:53:39.883 に答える