info
私は(多くの情報を含むモデルクラス)という名前のプロパティを含むクラス(classAと呼びます)を持っています。これにはname
(文字列)という名前のプロパティが含まれています。name
classA で文字列が変更されたときに、別のクラス (classB) が KVO 通知を受信するようにします。
これは、classB で現在行っていることです。
[classA addObserver: self forKeyPath: @"info.name" options: 0 context: nil];
name
classAの値が変化する方法は 2 つありclassA.info.name = ...
ますinfo
。classA.info = ...
をname
直接変更すると、KVO は完全に機能します。ただし、info
プロパティが設定され、name
間接的に変更されると、次のエラーが発生します。
Cannot update for observer <classB> for the key path "info.name" from <classA>, most likely because the value for the key "info" has changed without an appropriate KVO notification being sent. Check the KVO-compliance of the classA class.
これを機能させるには、classA で何を変更する必要がありますか?