User * currentUser;
任意のクラスから変更される可能性のあるグローバル変数 があります。変更時に保存したいNSUserDefaults
。
このようなグローバル変数に KVO を使用することは可能ですか、または同様の効果を達成する他の方法はありますか?
アプリデリゲートをオブザーバーとして追加しましたcurrentUser
:
[self addObserver:self forKeyPath:@"currentUser" options:NSKeyValueObservingOptionNew context:nil];
--
-(void)observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object
change:(NSDictionary *)change
context:(void *)context
{
if ([keyPath isEqualToString:@"currentUser"])
{
NSDictionary * userDict = [currentUser dictionaryRepresantation];
[UserDefaults setObject:userDict forKey:@"USER_DATA"];
[UserDefaults synchronize];
}
}
しかし、これは呼び出されません。