0
在我的iOS應用程序我要切換主題,以切換所有視圖的主題一下子任何可見的觀點是贊同所謂的「updateTheme」一NSNotificationCenter通知叫這樣的能力:NSNotificationCenter零星崩潰
[[NSNotificationCenter defaultCenter] postNotificationName:@"updateTheme" object:self];
但是,當我在一個視圖與自定義集合視圖單元格應用程序崩潰後,該單元收到通知。這是單元格中的所有代碼:
- (void)didMoveToSuperview {
if (!isNew) {
isNew = YES;
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(updateTheme) name:@"updateTheme" object:nil];
[self updateTheme];
}
}
- (void)updateTheme {
[UIView animateWithDuration:.5 animations:^{
self.titleLabel.textColor = [Colors boldText];
self.divider.backgroundColor = [Colors darkBorder];
} completion:^(BOOL finished){}];
}
當我註釋掉單元格訂閱通知的行時,應用程序運行正常。否則它崩潰與此錯誤
-[__NSCFType updateTheme]: unrecognized selector sent to instance 0x1775d5d0
我想不通爲什麼會發生這種情況,任何幫助或建議,將不勝感激。
問題是,通知中心正在發送'updateTheme'到錯誤的對象。這是可能發生的事情,因爲你調用了'addObserver:',但是那個對象不存在,而你忘記調用'removeObserver:'。 – matt