2014-06-21 1 views
0

특정 페이지를로드 할 때 메모리 부족으로 인해 앱이 종료되었습니다. NSURLRequest를 사용하여 데이터를 가져오고 이미지를로드합니다. 내 코드 전체에 중단 점을 배치하고 viewDidAppear 직후 첫 번째 didRecieveMemoryWarning 호출을 추적했습니다. 저는 여기에 이미지를로드하기 위해 사용하고있는 코드는 다음과 같습니다큰 이미지 파일을 표시 할 때 DidRecieveMemoryWarning이 viewDidAppear 다음에 호출 됨

NSError *error = nil; 
NSURLResponse *response = nil; 
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:self.img]]; 
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 
UIImage *img = [[UIImage alloc] initWithData:data]; 
self.ImgView.image = img; 
[self.scrollView addSubview:self.ImgView]; 

내가 수집 한 데이터에 대한 몇 가지 사실 :

  1. 이미지가 5,184px × 3,456px (× 672px을 1,008px 배율을 조정) 온라인
  2. 내가
  3. 있는 NSData 객체 데이터가 5,360,785 바이트

어떻게 320 × 320있는 UIImageView에 이미지를 배치하고

  • 이 문제를 해결할 수 있습니까? 응용 프로그램에서 데이터를 처리 할 수 ​​없습니까, 아니면 imageView에서 이미지의 크기를 조절할 수 없습니까? 이미지가 화면에 나타나지만 해당 페이지에 머물러 있는지 여부에 상관없이 화면이로드 된 후 앱이 약간 충돌합니다.

  • 답변

    3

    이미지 뷰에 할당하기 전에보기가로드 된 후 이미지가로드되기 전에 이미지를 약간 축소하십시오. 이렇게하면 메모리 경고가 발생하지 않습니다. NSData to UIImage

    이미지 크기를 조절 :이 타이밍

    How to scale down a UIImage and make it crispy/sharp at the same time instead of blurry?

    +0

    어떻게 데이터에서 그것을 이미지 아래로 한 규모 당기는거야 않을 경우? – RDSpinz

    +0

    NSData에서 이미지를 가져옵니다. uiimage를 축소 한 다음 할당하십시오. – user3739469

    +0

    편집 된 답변보기 – user3739469