반응형
"EXC_BAD_ACCESS"예외를 유발하는 NSNotificationCenter 게시물
A UIViewController
는 기본 센터에 자신을 추가합니다.
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(editFood)
name:@"editFood"
object:nil];
그런 다음 UITableView
델리게이트 NSObject는 NSNotification
다음을 게시합니다 .
[[NSNotificationCenter defaultCenter]
postNotificationName:@"editFood"
object:self];
런타임 중에 EXC_BAD_ACCESS 예외가 발생합니다.
가되어 defaultCenter
어딘가에 발표하기? UIViewController에서 UIViewController에 알림을 게시 할 때도 동일한 개념이 작동하지만 중요하지 않습니다.
구독자 중 한 명이 할당 해제되었습니다. [[NSNotificationCenter defaultCenter] removeObserver:self]
당신의 dealloc 을 호출 하십시오 (빠르지 않다면).
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
발생했습니다.
해결책은 실제로 무언가를 가리키는 선택기를 보내는 것이 었습니다.
반응형
'Programing' 카테고리의 다른 글
jQuery의 'keypress'는 Chrome의 일부 키에서 작동하지 않습니다. (0) | 2020.11.27 |
---|---|
UTF-8 읽기-BOM 마커 (0) | 2020.11.27 |
행렬의 각 행에 numpy.linalg.norm을 적용하는 방법은 무엇입니까? (0) | 2020.11.27 |
URL에서 원격 이미지의 너비 높이 가져 오기 (0) | 2020.11.27 |
numpy 배열에서 곱하기 (0) | 2020.11.27 |