2010-08-12 3 views
0

여러분 모두의 설명이 필요합니다. 즉, iPad 응용 프로그램을 구현하고 있습니다. 거기에서 이미지를 다운로드하고 애니메이션을 만들려고했습니다. 이미지 수는 100,000 개 이상이어야합니다. 뷰에 다운로드하고 추가하는 데 사용한 코드는 다음과 같습니다.메모리 관리

UIImageView* imageView=[[UIImageView alloc]initWithFrame:CGRectMake(0, 0,100,100)]; 
NSData *receivedData=nil; 
receivedData = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://path/prudently/iphone/image_s/e545afbf-4e3e-442e-92f9-a7891fc3ea9f/test.png"]]; 
imageView.image = [[UIImage alloc] initWithData:receivedData] ; 
[subView addSubview:imageView]; 
[imageView release]; 

하지만 내 서브 뷰에 성공적으로 8000 개 이상의 이미지를 추가 한 후에 예외가 발생합니다. URL에서 데이터를 가져 오는 데 예외가 발생합니다. 그리고 한 번 더 내가 서브 뷰를 공개하지 않으면 서브 뷰를 애니메이션화해야하기 때문에 그들을 다운로드했습니다.

이 Sekhar Bethalam을 주셔서 감사합니다 당신의 suggessions 나에게주십시오.

+0

예외는 무엇입니까? 메모리가 부족할 수도 있습니다.이 경우 예외는 아마도 + [NSData dataWithContentsOfURL :]'또는 호출하는 메소드 중 하나에있을 것입니다. – David

답변

0

캐시 된 파일에 URL이나 이미지 등을 기록하고 일부 페이지를 분할하여 이미지를 애니메이션으로 만들 수 있습니다. 사용자가 페이지 링크를 누르면이 페이지의 이미지를 읽고 애니메이션합니다. 사용자가 사용하지 않는 페이지는 표시 할 필요가 없습니다.

1

iPhone과 같은 스마트 폰은 물론 데스크탑 애플리케이션의 경우 100,000 개의 이미지가 많이 보입니다. 이처럼 많은 리소스가 필요하지 않은이 문제를 해결하기 위해 취할 수있는 또 다른 접근 방법이 있습니까?

+0

@ David : 안녕하세요.이 프로그램의 수신 신호 : "EXC_BAD_ACCESS"가 있습니다. 데이터 포맷터를 일시적으로 사용할 수 없으며 '계속'한 후에 다시 시도합니다. (공유 라이브러리 "/Developer/usr/lib/libXcodeDebuggerSupport.dylib"을로드하는 중 알 수없는 오류가 발생했습니다.) – ChandraSekhar

0

이 작업을 수행하는 유일한 방법은 UIImageView가 화면에 필요한대로 동적으로 만들고 파괴하는 것입니다. iPhone/iPad/iAnything은 장치에서 사용할 수있는 제한된 메모리로 인해 원하는 것을 할 수 없습니다.

+0

하지만 응용 프로그램을 닫을 때까지 하위보기가 움직여야하기 때문에 문제가 발생했습니다. 이것이 요구 사항입니다. 당신이 제안한대로 나는 그들을 움직일 수 없습니다. 그게 문제 야. – ChandraSekhar

+0

겹쳐지지 않은 각 이미지의 70 인스턴스 만 (대부분) (iPad) 만 표시 할 수있는 화면에서 100,000 개의 100x100 픽셀 객체에 애니메이션을 적용하는 것에 대한 가치는 이해할 수 없습니다. – Aaron