2011-02-11 2 views
4

데이터베이스에 쿼리하고 많은 수의 작은 이미지를로드하는 응용 프로그램이 있습니다. 현재 xcode의 iPhone 프로젝트에 리소스로 이미지를 추가합니다 (적절한 그룹 아래 리소스 폴더로 드래그하여). 그러나, 지금은 추가 8000 이미지를 프로젝트에 추가 기능을 추가하려고합니다.iPhone 응용 프로그램에 xcode 속도 저하없이 많은 이미지 포함

이 이미지를 추가 한 후 인터페이스 작성기가 이미지 미리보기를로드하는 데 매우 느리다는 것을 알게되었습니다. 많은 CPU를 사용하여 IB가 매우 반응이 없습니다. xcode와의 동기화를 비활성화하면 이미지 미리보기가 전혀로드되지 않습니다.

UI를 느리게하지 않는 효율적인 방법으로 이러한 이미지를 포함하고 참조 할 수있는 방법이 있습니까? 프로젝트의 이미지 수에 따라 UI가 느려지지 않도록하고 싶습니다.

+0

모든 이미지를 앱 패키지에 넣는 대신 클라이언트 - 서버 모델을 사용 해본 적이 있습니까? –

+2

응용 프로그램을 오프라인으로하고 싶습니다. 업데이트를 거의하지 않기 때문에 상황을 실시간으로 업데이트 할 필요가별로 없습니다. 오프라인 사용은 기능입니다. –

답변

10

하나의 문제가 아닌 훨씬 더 많은 이미지를 포함하는 앱을 개발했습니다 (빌드/패키징 단계는 제외하고 1GB 이상의 데이터에서 시간이 오래 걸림).

열쇠는 이미지가 들어있는 폴더를 그룹 및 개별 항목이 아닌 "폴더 참조"로 추가하는 것입니다. 이미지에 액세스 할 때 [UIImage imageNamed:@"..."] 이상의 마법을 수행해야합니다.

당신은

PS를

[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"yourdirectory"] 

을 사용하고 (자연, 디렉토리 내용 및/또는 읽기) 파일 이름을 추가하는 이미지의 경로에 도착. 이것은 Interface Builder에서 실제로 이미지를 사용하지 않는다고 가정합니다.

아, 그리고 더 많은 팁 : 개발하는 동안 처음 앱을 설치하면 xcode에서 앱의 이미지를 삭제할 수 있습니다. 기기에서 앱을 제거하지 않는 한 이미지는 기기에 계속 남아있어 코드에서 사용할 수 있지만 빌드 및 설치가 훨씬 빨라집니다.

+0

감사합니다. 정확하게 필요한 것입니다. 내가 집에 갈 때 이것을 시험해 볼 것입니다. 나는 IB에서 8000 개의 이미지를 사용하지 않는다. (분명히 나는 ​​이것을 손으로하지 않을 것이다!) 그들은 사용자 선택에 기반하여 내가 만든 레이아웃에 문법적으로 할당된다. –

1

추가 할 이미지가 너무 많습니다. 당연히 Xcode는 초기 빌드에서 모든 것을 처리하기 위해 잠시 시간을 할 것입니다.

빌드를 지우거나 시뮬레이터에서 앱을 삭제하지 않으면 Xcode가 변경되지 않으면 더 빨리 처리해야합니다.

사용자 인터페이스가 느려지는 경우 1 개의 인스턴스에서 모든 이미지를로드하지 마십시오. 8000 개의 이미지가있는 테이블을 가지고있는 것처럼 시뮬레이터에서도 느려질 수는 없습니다.

+0

그레이트 추가! –

관련 문제