A UIViewController
добавляет себя к центру по умолчанию:
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(editFood)
name:@"editFood"
object:nil];
Затем a UITableView
делегат NSObject отправляет a NSNotification
:
[[NSNotificationCenter defaultCenter]
postNotificationName:@"editFood"
object:self];
В течение времени выполнения это получает исключение EXC_BAD_ACCESS.
defaultCenter
будучи выпущенным где-нибудь? То же понятие работает, когда я отправляю уведомление UIViewController от UIViewController, но это не должно иметь значения, правильно?
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
, произошло.
решение состояло в том, чтобы отправить селектор, который на самом деле указывает на что-то.