2011-12-05 3 views
1

저는 iPad 앱을 작성 중이며 사용자 정의보기가 있습니다. 여기서는 drawRect을 덮어 씁니다. 그래픽을 새로 고치려면 setNeedsLayout이라는 타이머가 있습니다.iOS drawRect : 그래픽 컨텍스트를 지울 수 있습니까?

내 애플리케이션을 프로파일 링 할 때 애니메이션이 펼쳐질 때 애플리케이션이 차지하는 메모리가 1.5MB에서 600MB로 늘어나는 것을 볼 수 있습니다.

이전에 그린 그래픽이 사라지지 않으므로 새 그래픽을 다시 그리기 전에 흰색 사각형을 그립니다.

일부 경로 또는 모양이 문맥에 남아 있다고 생각합니다. 어떻게 지울 수 있습니까? (모든 것을 제거하십시오)?

답변

1

그래픽 컨텍스트를 지우는 문제가 아닙니다. 당신은 아마 물건을 유출하고 있습니다. Instruments의 Leaks 템플리트를 사용하여이를 추적하십시오. drawRect: 코드를 게시하면 일부 누수가 표시 될 수 있습니다.

+0

감사합니다. Rob! 나는 메모리 누출이 없었고 어떤 것도 가지고 있지 않다는 것을 확인했다. 그것이 밝혀 졌을 때 나는 단지 악기를 잘못 읽고 있다고 생각합니다. "라이브 바이트"열 대신 "전체 바이트"열을보고있었습니다. 모든 할당에 대한 "라이브 바이트"는 635KB를 넘지 않습니다. drawRect 내부에서 아무런 잘못을하지 않았다는 것을 확인해 주셔서 감사합니다. – onetamer

관련 문제