2013-07-07 4 views
-1

지금 작업하고있는 앱은 코어 데이터 데이터베이스에서 데이터를로드하는 UITableView (맞춤 셀 사용)을 중심으로합니다. 각 엔터티에는 NSStrings 몇 개, 압축 된 크기가 UIImage 인 이진 데이터 특성 및 변형 가능 UIImage 특성이 외부에 저장되어 있습니다. 앱은 저장된 압축 된 크기 조정 된 이미지로 멋지게 실행되지만 전체 이미지를 변형 가능한 속성에도 저장하면 테이블보기가 느려지고 메모리 경고가 표시됩니다. 셀에 실제로있는 것은 단지 두 개 뿐이고 압축 된 크기 조정 된 이미지의 jpeg 표현이라는 것을 언급해야합니다.UIImage가 외부에서 덤비로 저장되었습니다.

외부에 저장된 전체 크기 이미지가 테이블보기에 액세스하지 않을 때 속도가 느려지는 이유는 무엇이며이를 해결하려면 어떻게해야합니까?

+0

은 "외부 저장 됨"및 "액세스되지 않음"을 정의합니다. – Kreiri

+0

외부 저장 - 데이터 모델 속성 검사기에서 "외부 레코드 파일에 저장"옆에 확인 표시가 있습니다. 나는 Core Data에 UIImage를 저장할 때 이것이 권장됨을 읽었습니다. 액세스되지 않음 - 표시되는 전체 크기의 UIImage를 알려주는 코드가 없거나 조작 된 코드가 없습니다. 테이블 뷰에 사용되는 것이 아니라 다른 목적으로 엔티티에 있습니다. – Andrew

답변

0

파일 시스템에 이미지를 저장하고 코어 데이터에서 경로 참조를 유지하는 것이 좋습니다.

이미지를 메모리에로드하는 작업은 비용이 많이 들기 때문에 주 스레드로 전달하기 전에 백그라운드 스레드에서이 작업을 수행하십시오. 시각적 셀이 무료로 우선 순위가 매겨지기 때문에 사용자가 빠르게 스크롤 할 때 유용한 이미지로드 스택을 유지 관리 할 수 ​​있습니다.

이 일반적인 조언 이외에는 말할 것도없고, 코드를 추가하지 않고 크기와 같은 이미지 메타 데이터가 전혀 필요하지 않습니다.

+0

이 질문에 대한 두 번째 응답의 두 번째 코드 스 니펫이 파일 시스템에 저장하는 적절한 방법일까요? http://stackoverflow.com/questions/6238139/ios-download-and-save-image-inside-app? – Andrew

+0

이미지가 얼마나 중요한지에 달려 있습니다. 사용자가 앱에서 이러한 항목을 만든 경우 문서에 넣는 것이 좋으며, 그렇지 않으면 캐시 디렉토리를 사용하십시오. – SK9

관련 문제