2013-03-27 1 views
-1

내 프로젝트의 초보자가 일부보기에서 오류가 발생했습니다. xcode에서 RUN의 하위 항목에있는 Analyze의 도움으로 확인했습니다. 여기에 내가 누출 객체가 내가 그것을 내가 문제가 즐겁게 일이 무엇인지 이해 할 수없는 누출 개체를 나타내는 이미지의 두 종류를 추가 여기에 문제 목록의 일부를 가지고 어떤 사람은 나에게Analyzer에서 메모리 누수 문제가 있습니까?

issue in appdelegate class issue in XMLparse class

+0

ARC를 켜거나 일부 변수를 적절히 '해제'합니다. – CodaFi

+0

당신이 어떤 이미지를 공개하지 않았습니까? – Vijay

답변

1

도움 그것은 당신이 create 또는 retain 어떤 개체이지만, 그것을 공개하는 것을 잊지 분명합니다. 때 allocNotify_arraystrong-property 인 경우 두 개의 이미지에서

, 당신은 출시하지 않고 appDelegate.Notify_array에 대한 ALLOC, 당신은 그것을 autorelease 수 있습니다.

그리고 receivedData도 공개하지 않습니다.

dealloc에있는 모든 객체를 릴리스했을 수도 있지만 이름 지정 스타일이 좋지 않을 수 있습니다. 예를 들어 인스턴스 변수에 밑줄 접두어가 하나 있으면 좋습니다.

메모리 누수로 인해 충돌이 발생하지 않지만 와일드 포인터에 액세스하게됩니다. 프로젝트가 중단되면 NSZombie Detect을 열어 프로젝트를 잡는 것이 좋습니다.

+0

당신의 도움으로 고마워요. – Vijay

+0

'recievedData'는 iVar이기 때문에 누출되지 않습니다. '-release'는 나중에 설정하는 것을 복잡하게 만듭니다. – CodaFi

+0

@CodaFi 예, 알고 있습니다. 그래서 iVar 네이밍 스타일을 제안합니다. –

1

XCode 분석기는 잠재적 인 누출을 찾기 위해 사용되며 충돌이 발생한 이유를 정확하게 알려주지 않습니다. 스크린 샷에서는 theConnection이 alloc 문에 대해 어디에서나 해제되지 않는다고 말하고 있습니다. 스크린 샷 2에서 appDelegate.Notify_array가 alloc 문에 대해 아무 곳에서나 해제되지 않는다고 말합니다. 실행 경로는 파란색 화살표로 표시됩니다.

해당 릴리스 문을 추가하십시오. 이 분석기 누출은 사라질 것입니다.

예외 중단 점을 추가하고 xcode에서 좀비 객체를 활성화하면 대부분의 충돌을 찾는 데 도움이됩니다. 또한 xcode 콘솔에 기록 된 오류 메시지를보십시오.

+0

도움에 감사드립니다. – Vijay

관련 문제