2011-08-25 8 views
4

누출. 이 올바른지?UIGraphicsGetImageFromCurrentImageContext 내가 화면 스냅 샷을 다음과 같은 코드를 작성했습니다

악기에서 정확한 누설 지점을 얻을 수 없습니다. 액티비티 모니터에서 나는 위의 코드 스 니펫 메모리를 실행하는 UI로 전환 할 때 약간의 MB만큼 증가한다는 것을 관찰했다. 이 시점 이후에 결코 감소하지 않습니다. UIGraphicsGetImageFromCurrentImageContext에 메모리 누수가 있습니까? 어떻게 해결할 수 있습니까?

편집 : 악기 분석 활동 모니터 :이 코드 줄이 실행될 때 메모리 하이킹을 보여줍니다. 스크린 샷 (UIImage)을 공개 한 후에도 절대로 감소하지 않습니다.

누수 및 할당, 힙 스냅 샷 :이 누수가 표시되지 않습니다.

누군가 나를 도울 수 있습니까?

+0

가능한 복제를 수행 명확한 컨텍스트 (http://stackoverflow.com/questions/5121120/uigraphicsgetimagefromcurrentimagecontext-memory-leak-with-previews) –

답변

-1

animationView 용 데이터가 포함 된 UIImage를 만들었습니다 (일부 MB 일 수 있음). 아마도 자동 복구 풀에이 기능을 포함시켜야합니다.

NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];  
    UIImage* screenshot = UIGraphicsGetImageFromCurrentImageContext(); 
    //[screenshot retain]; //If you want precise control over when it is released and you will use it later. 
    [pool release]; 
+0

나는 유지하지 않은 '스크린 샷'. 그럼 그걸 놓아야하나요? – spd

+1

실제로 UIGraphicsGetImageFromCurrentImageContext는 자동으로 렌더링 된 것 같습니다. autorelease 풀에 포장하십시오. – cdasher

+0

나는 이것을 시도했다. 그러나, 아무 소용이 없습니다. [[UIImage alloc] initWithContentsOfFile :] 호출을 사용하여 더미 이미지로 스크린 샷을 만들었을 때 실제 메모리는 Activity Monitor에서 해제 된 후에 해제되었습니다. – spd

-1

CGContextRef context = UIGraphicsGetCurrentContext();

/* 사용자 코드 */

CGContextRelease (context);

[미리보기와 UIGraphicsGetImageFromCurrentImageContext 메모리 누수]의

+0

'UIGraphicsEndImageContext()'가 이미이 작업을 수행합니다. –

관련 문제