【发布时间】:2013-02-16 13:41:43
【问题描述】:
我有一个全局变量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];
}
}
但这没有被调用。
【问题讨论】:
标签: objective-c cocoa-touch key-value-observing