0

ARC로 변환 된 iPad 응용 프로그램에서 작업 중입니다. 신청은 os> = ios 5.0입니다. 그래서 의심의 여지가 어떻게 viewOutlets을 관리합니까? ViewOutlets를 nil로 설정하려면 - (void) didReceivememoryWarning을 사용합니다. 하지만 iOS 5.0 및 5.1 응용 프로그램에서는 많은 메모리 누수가 발생합니다. As - (void) viewDidUnload는 ios 6.0에서 더 이상 사용되지 않으며 응용 프로그램에서도 동일하지 않습니다. 아웃렛을 관리하는 올바른 방법입니까? 제발 빨리 대답 해주세요. 당신이 viewDidUnload이 수행하고이 호출 할 때 무엇을 이해하지 않기 때문에 당신이 아이폰 OS 6iOS 5.0 및 iOS 6.0에서 뷰 아웃렛 관리

문제가 발생하는 경우 대에서 iOS 5에 대한 코딩 방법에 차이가 없습니다

답변

0

, 그것은이다.

viewDidUnload 컨트롤러 뷰를 언로드하면 호출됩니다. iOS 6에서는보기가 언로드되지 않습니다. iOS 5 이전 버전에서는보기가 거의 언로드되지 않았습니다.. 따라서 두 경우 모두 viewDidUnload은 호출되지 않습니다.

프로그램이 누출되면 프로그램을 릴리스하지 않기 때문입니다. dealloc에 항상 인스턴스 변수를 릴리스해야합니다. 나는 이것이 당신 문제라고 생각합니다.

컨트롤러보기가 언로드되면 (iOS 5에서만 발생하지만 이전에는 발생하지 않지만 관련이 없음) viewDidUnload 다시 만들 리소스 인 경우 메모리를 절약하기 위해 일부 리소스를 버릴 수 있습니다 뷰가 다시로드 될 때 여기에는 일반적으로 콘센트 인 인스턴스 변수와 속성이 포함됩니다 (뷰가로드 될 때부터 다시 Xib를로드하고 콘센트를 새 객체에 다시 연결 함). viewDidLoad에 설정된 모든 변수가 포함됩니다.

프로그램을 올바르게 코딩했다면 viewDidUnload을 제거하면 프로그램의 정확성에 아무런 영향을 미치지 않습니다. (viewDidUnload은 거의 호출되지 않으므로

didReceiveMemoryWarning 중 하나만 사용해야합니다.

+0

덕분에 당신의 대답. ARC 기반 응용 프로그램에서 릴리스되는 내용에 대해 알려주십시오. 몇 가지 기사를 살펴 보았지만 ARC 프로젝트에서 개체를 해제하는 방법에 대해서는 알지 못했습니다. 모든 뷰 아웃렛을 nil로 설정합니다. 그러나 이것은 큰 변화를 가져 오지 않습니다. 메모리 경고를 표시 한 후 내 응용 프로그램이 계속 충돌합니다. –

2

ARC (자동 참조 횟수) 기능은 iOS 5 이상 버전 (iOS 6 등) 버전에서 사용할 수 있습니다.

When you are using ARC unable in your project, you dont need to `manually release any object` that you have allocated for your stuff. 

ARC will automatic handle this one.so it will beneficial for `Memory Management`. 


Hope ,You understand what i m trying to say. 

더 명확한 설명을 위해, 아래 링크를 참조하시기 바랍니다 : To ARC or not to ARC? What are the pros and cons? ARC, worth it or not?

Good Luck !!!