2012-02-20 4 views
1

다른 시점에 다른 이미지를 표시하는 데 사용하는 UIImageView가 하나 있습니다. 내가 이미지를 변경하려면 나는 다음과 같은 코드를 사용 (filenamePng로드 할 이미지 이름을 보유하고 imgView 내있는 UIImageView입니다) 표시 :UIImageView - 실제 메모리 사용량이 지속적으로 증가합니다.

[self.imgView setImage:[UIImage imageNamed:filenamePng]]; 

나는 내 응용 프로그램의 '실제 메모리 사용'을 볼 때 인스 트루먼 트에서 다른 이미지가 표시되면서 메모리가 계속 증가합니다 (일부 PNG는 상당히 크기 때문에 알기 쉽습니다). UIImageView를 nil/release로 설정하고 놀았지만 아무 소용이 없습니다.

위의 코드를 사용할 때 메모리의 이전 이미지가 nil/release로 설정되어 있어도 해제되지 않는 이유는 무엇입니까?

+0

ARC를 사용합니까? 이미지를 다른 곳에서 참조 할 수 있습니까? – sch

+0

게시 한 코드에 누수가 없습니다. 게다가,'alloc'을 호출하지 않으면'release'를 호출하지 않아야합니다. 'alloc'을 호출하면 상대방의'release' 코드를 게시하십시오 – Saphrosit

답변

1

+[UIImage imageNamed:]은 캐시를 사용합니다. 모든 심판 계수가 정확하다고 가정하면 어느 시점에서 제거되어야합니다. 또한, sim vs device에서의 실행은 이와 관련하여 매우 다를 수 있습니다.

+0

어디서 문서화되어 있습니까? 나는 당신을 믿는다. 그러나 나는 당신이 어떻게 알고 있는지 궁금하다. – nielsbot

+1

Justin에게 감사한다 - 당신의 대답은 나를이 질문에 이르게했다 : http://stackoverflow.com/questions/316236/vs-uiimage-imagewithdata – MattStacey

+1

그리고이 하나의 http :// /stackoverflow.com/questions/924740/dispelling-the-uiimage-imagenamed-fud – MattStacey

관련 문제