0

オブジェクトの変更を識別する方法があることを知りたいです。任意のクラスのオブジェクトを取りましょう。どのオブジェクトにもある程度のメモリ空間があり、オブジェクトの任意のプロパティを変更すると、このメモリ空間に何らかの変更が発生するはずです。この変更を特定する方法はありますか。

クラスがあり、多くのプロパティがあり、すべてのプロパティの以前の値と現在の値を比較するのではなく、変更されたプロパティがあるかどうかを知りたいです。

何か問題がある場合は明確にし、解決策を提案してください。

御時間ありがとうございます。

4

3 に答える 3

2

キー値の観察はどうですか?次のように、リスナーをプロパティに追加できます。

YourClass *object = [YourClass new];
[object addObserver:self forKeyPath:@"property" options:NSKeyValueObservingOptionNew context:nil];

次に、スミスがメソッドを変更したとき

 -(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary     *)change context:(void *)context
{

}

自動的に発射されます。したがって、変更を手動で比較する必要はありませんが、オブザーバーをプロパティに追加する必要があります。

于 2013-08-27T13:39:16.923 に答える
-1

デバッグするには、malloc_error_break にブレークポイントを設定します。

それを行い、バックトレースを投稿します。

通常、これはメモリが破損していることを意味しますが、過剰に解放されたオブジェクトがあることを意味する場合もあります。Build と Analyze も試してみてください。

于 2013-08-27T13:39:35.763 に答える