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