내가 내가, 내가 그것을 사용자 정의 개체 ERSearchView를 할당하고 편곡에 추가 한ARC 이상한 행동 ARC와
self.arr = [NSMutableArray array];
로 할당
@property (strong, nonatomic) NSMutableArray *arr;
속성이 활성화
ERSearchView *SV = [[ERSearchView alloc] initWithDelegate:nil];
[arr addObject:SV];
내 검색보기에 검색 결과가 다시 나타나지 않기 때문에 dealloc
메서드를 재정의했습니다. 임대 됨 :
- (void)dealloc {
self.delegate = nil;
NSLog(@"deallocated search view");
}
내 View Controller를 열 때 호출되지 않습니다. 그러나보기 컨트롤러에서 arr 변수를 0으로 설정하면 dealloc
검색보기가 삭제되었다는 로그 메시지가 나타납니다.
dealloc
에 "dealloc"메시지가 있기 때문에보기 컨트롤러가 100 % 출시되었지만 arr
내부의 객체가 해제되는 것을 어떻게 가능하게 설명 할 수 있습니까?
dealloc 메서드에서 [super dealloc]이 누락되었다고 생각합니다. init 및 dealloc 메소드에서 접근자를 피하기 위해 대신 iVars를 사용하십시오. – CarlJ
ARC를 사용하면 슈퍼 클래스에 메시지를 보내는 범위 내에서 직접 'dealloc'을 호출 할 수 없습니다. – Eugene
당신은 dealloc의 오버라이드에서 [super dealloc]이라고 부르지 않았지만, 제게 따르면 그가 포함시킨 모든 것이 릴리즈 된 컨테이너를 릴리스했기 때문에 아닙니다. –