나는 항상 혼란 스럽습니다. 누군가 나를 위해 그것을 설명해 주시겠습니까?보기 및 다른 객체 누설
보기 컨트롤러 클래스에서 나는 예를 들어 스크롤보기를 가지고 있으며 여러보기를 추가하려고합니다. 그래서 뷰 컨트롤러 내에서 뷰를 생성하고 호출자에게 반환하는 도우미 메서드를 만듭니다. 그러면 호출자는이 새로운 뷰를 스크롤 뷰에 추가합니다.
-(UIView *)getView {
UIView *v = [[UIView alloc] init];
// do all the guff I need to configure the view
return v;
}
문제는 어디 또는 때입니다 :
그래서 여기에 내가 여기에보기를 얻을 addSubView:
[scrollView addSubView:[self getView]];
에 직접 통과하는 메소드를 호출하면 뷰를 작성하는 방법입니다 v
가 출시 되나요? getView
에서 생성 될 때 autorelease
으로 할당해야합니까, 아니면 addSubView:
을 호출 한 후에 해제해야합니까? 감사.
return [v autorelease];
감사합니다. – user7865437
한 번에 하나의 코드 블록 만 생각하면 이러한 메모리 관리 질문이 훨씬 쉬워집니다. 당신의 도우미 방법을 고려하십시오 : 당신은 객체를 생성해야합니다. 퇴근 후에 무슨 일이 일어나는지는 당신의 방법에 아무런 문제가되지 않습니다. – kubi
도우미 메서드를 호출 할 때 : 메서드 서명 ('getView')은 규칙에 따라 자동 렌더링 된 개체를 반환합니다.소유권을 가져 오려면이 개체를 유지하고 그렇지 않으면 아무 것도하지 않습니다. – kubi