2013-08-09 1 views
0

단순히 UIViewController의 새 하위 클래스를 만들었습니다. 인터페이스 작성기에 UI 개체를 추가하고 이러한 UI 개체에 대해 콘센트를 만들고 각각 연결했습니다. , 내가 전에 이런 일을 알아 차리지 않았다코드가 viewDidUnload에 자동으로 나타납니다.

- (void)viewDidUnload { 
    imageView = nil; 
    scrollView = nil; 
    [super viewDidUnload]; 
} 

는 다음과 같이 일했는데 :

그런 다음, 갑자기, 내의 ViewController의 구현 나를 위해 자동으로 생성 된이 코드를 보았다? 왜?

+1

어떻게 새로운 xcode가 작동하는지 확인할 수 있습니다. viewDidUnload 메소드에 해당 nil 문을 자동으로 추가합니다. –

+1

@Janak Nirmal : 네, 제 질문은 왜 그런가요? 이미 ARC를 사용하고 있으므로 처리 할 것이고 IBOutlets는 __weak으로 선언됩니다. – user2054339

+1

실제로 배포 대상이 6보다 작 으면 자동으로 viewDidLoad 메서드가 생성되어 해당 문을 넣습니다. 그래서 이것이 사실입니다. 비록 그것은 약점/강한 참조가 될 것입니다 내가 테스트 프로젝트를 작성하여 그것을 테스트하여 확인을 그 진술을 추가합니다 –

답변

2

자동 생성되는 것을 기억하지 않지만 iOS 6에서는 viewDidUnload가 더 이상 사용되지 않으므로 삭제할 수 있습니다 (6.0 이상을 타겟팅하는 경우).

0

viewDidUnload 메소드의 목적은 viewDidUnload 메소드와 완전히 반대되는 방식으로 viewDidLoad 메소드에서 작성한 자원을 해제하는 것입니다. Xcode는 할당 된 리소스를 자동으로 해제하는 기능을 제공하므로 viewDidUnload 메소드로 해당 코드를 찾습니다. 당신이 STH를 해제하려면 viewDidUnload refernce.

+0

예,하지만 내 질문은 왜 그렇게하고 있었는지 ... (내가 언급 한대로 포인터를 설정 없음으로 오전 ARC + 아울렛 사용 __weak) – user2054339

0

이 그것은, 방법으로 할 때 Received memory warning.

- (void)viewDidUnload NS_DEPRECATED_IOS(3_0,6_0); // Called after the view controller's view is released and set to nil. For example, a memory warning which causes the view to be purged. Not invoked as a result of -dealloc. 

라고 자세한 내용은 다음 링크를 따를 수 있습니다. 수신 메모리 경고가 발생하면

- (void)didReceiveMemoryWarning; // Called when the parent application receives a memory warning. On iOS 6.0 it will no longer clear the view by default. 
관련 문제