주어진 이미지 위의 것은 내 응용 프로그램 누수이다.
여기 확장 정보에서 라이트 그린, 라이트 핑크, 라이트 브라운, 라이트 퍼플과 같은 다양한 색상을 볼 수 있습니다.
각 색상은 무엇을 나타 냅니까?
이제 다른 혼동은 "메모리 누수를 만드는 코드를 찾는 방법"입니다.
최대 메모리 누수의 한계까지 - 실제 아이폰과 함께 갈 수 있습니다. (가정 10 바이트 아무 문제, 20 바이트 아무 문제 & 200 바이트 문제) 무엇 각 색상을 나타냅니다 않습니다
- ?
- 우리 코드를 나타내는 색상/우리가 객체를 할당 한 코드를 어느 정도까지 얻을 수 있는지 & 잊어 버리셨습니까?
우리가 모든 누수를 해결해야하는 이유
- (예를 들어 - - 세부에서 UIKit 두 번째 셀의 클릭에 우리는 코드에 도착하지 못할)? - 심지어 하나의 누수가 iPhone을 고칠 수 있습니까?
- 왜 iPhone이 메모리에 누출을 허용합니까?/응용 프로그램이 종료 된 후 가비지 수집이 자동으로 수행되지 않는 이유는 무엇입니까?
- 계측기에 따라 할당 해제되어야하는 개체의 할당을 해제하려고하면 내 응용 프로그램이 비정상적으로 종료됩니다. 내가 dealloc하지 않으면 내 응용 프로그램이 완벽하게 실행됩니다. 어떻게?
- 보기에서 최대 10 초 이상 기다리는 것이 좋습니다. 누출이 있으면 악기에서 누출을 감지합니까?
+1 훌륭한 답변 Kendall. @sagar, 질문 3에 대해서는 dealloc을 직접 호출하지 말고 오직 유지하거나 해제해야합니다 (예외는 [super dealloc] 임). 나는 당신의 해결책이 autorelease를 구현하는 것이라고 믿는다. 왜냐하면 충돌을 조기에 객체를 해제함으로써 발생하는 것처럼 들리기 때문이다. 예 : [[[NSArray alloc] init] autorelease]; – h4xxr