EXC_BAD_ACCESS
может произойти даже после проверки существования dealloc следующим образом:
- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self]
}
Вышесказанное решит проблему большую часть времени, но, очевидно, моя причина заключалась в том, что я косвенно добавил наблюдателя с selector:
, установленным на nil
, следующим образом:
[NSNotificationCenter.defaultCenter addObserver:self
selector:nil
name:notificationName
object:nil];
... поэтому, когда я опубликовал что-то с этим notificationName
, EXC_BAD_ACCESS
произошло.
Решение было отправить селектор, который на самом деле указывает на что-то.