我有一个全局变量 ,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];
}
}
但这不叫。