有没有人经历过同样的事情。我有时会收到很多通知。好像我陷入了无限循环。
有没有办法过滤和收听我自己的设置值,我想听?
NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
NSOperationQueue *mainQueue = [NSOperationQueue mainQueue];
[center addObserverForName:NSUserDefaultsDidChangeNotification object:nil
queue:mainQueue
usingBlock:^(NSNotification *note) {
SettingsManager * s = [SettingsManager sharedSettings];
DLog(@"\n%@ Setting logging: %@", note, s.loggingEnabled ? @"YES" : @"NO");
if (s.loggingEnabled) {
[BPAnalytic startLogging];
} else {
[BPAnalytic stopLogging];
}
}
];
答案 0 :(得分:1)
你没有删除观察者。这就是为什么。尝试删除dealloc上的观察者
- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
答案 1 :(得分:1)
我发现当我的应用中的另一个第三方组件在我不知情的情况下向NSUserDefaults写入更改时就是这种情况。您可能需要仔细检查任何此类组件/库以查看是否发生了这种情况