4
一个非常简单的问题,但我似乎无法找到答案。 (开发iOS 5+应用程序)。addObserver on
在我的AppDelegate,我有一个属性,我们称之为@property (non atomic) BOOL aFlag;
。如果值发生更改,我想要通知我的AppDelegate。下面是我试了一下(一切都发生在AppDelegate.m
),这是一样的,当我“链接”两种不同的与观测对象:
-(BOOL)application:(UIApplication*)application
didFinishLaunchingWithOptions:(NSDictionary*)launchOptions {
// Some stuff
_aFlag = YES;
[self addObserver:self
forKeyPath:@"aFlag"
options:(NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld)
context:nil];
// Some other stuff
}
-(void)observeValueForKeyPath:(NSString*)keyPath
ofObject:(id)object
change:(NSDictionary*)change
context:(void*)context {
if ([keyPath isEqual:@"aFlag"]) {
// Do something
} else {
// Do nothing
}
}
但observeValueForKeyPath:
不叫。
我在哪里错了?谢谢。
嗯,这是一个很好的答案。我没有想到,看起来比KVO解决方案更有效率。唯一的是我有五个标志可以观察......这意味着我需要实现5个setter,或者使用所有标志的单一方法(可能更好)。感谢您的建议 ! – rdurand
这是一个很棒的回答布尔在布尔 – ewizard