반응형
KVO 및 ARC 제거 방법
ARC 아래 의 염색 된 관찰에서 어떻게 구성되어 있습니까? 관찰 튼 추가하고 제거하는 것을 잊었습니까? 더 이상 메모리를 수동으로 관리하지 관찰에서 물러나야할까요?
예를 들어, 뷰 컨트롤러에서 :
[self.view addObserver:self
forKeyPath:@"self.frame"
options:NSKeyValueObservingOptionNew
context:nil];
이전 removeObserver:
에는 뷰 컨트롤러의 dealloc
메서드를 호출 했습니다 .
-dealloc
ARC에서 여전히 구현할 수있는 키 값의 관찰을 제거 할 수 있습니다 . [super dealloc]
더 이상이 메서드 내에서 호출하지 않습니다 .
-release
이전 에 재정의 잘못된 것입니다.
이 코드로 수행
- (void)dealloc
{
@try{
[self.uAvatarImage removeObserver:self forKeyPath:@"image" context:nil];
} @catch(id anException) {
//do nothing, obviously it wasn't attached because an exception was thrown
}
}
스택 오버플로의 다른 곳 에서 Chris Hanson은 고유 목적을 위해 메서드를 사용하고 소유자가 개체가 완료 할 수 있음을 알릴 수 있습니다. 무효화 메서드를 구현할 것을 권장합니다. 과거에 저는 Hanson의 솔루션이 잘 고려되어 있다고 생각합니다.
참고 URL : https://stackoverflow.com/questions/6959896/kvo-and-arc-how-to-removeobserver
반응형
'IT' 카테고리의 다른 글
현재 Functional Reactive Programming 구현 상태는 어떻습니까? (0) | 2020.09.12 |
---|---|
Android Gradle의 testCompile 및 androidTestCompile에 대해 혼동에 대해 (0) | 2020.09.12 |
console.log javascript [기능] (0) | 2020.09.12 |
Git이 파일을 바이너리로 취급하게 지불해야합니까? (0) | 2020.09.12 |
RESTful 로그인 실패 : 401 또는 사용자 지정 응답 반환 (0) | 2020.09.12 |