0

먼저 무엇을하려고하는지 설명하겠습니다. "앨범"스택처럼 작동하는 테이블보기가 있습니다. 각 셀은 사용자를 이미지를로드하는 해당 컬렉션 뷰로 리디렉션합니다. 지금은 , 나는 사용자가 카메라를 사용하여 사진을 보자, 나는 이미지 피커 컨트롤러를 사용하고, 다음 나는이 같은 속성에 저장 :카메라에서 가져온 이미지를 NSMutableArray에 저장하십시오.

은 "albumList"
[[[Album sharedInstance].albumList valueForKey:@"nameOfFolder"] addObject:info[UIImagePickerControllerOriginalImage]]; 

이 NSMutableDictionary이다, 폴더 (폴더를 나타내는)의 각 값은 NSMutableArray입니다. 각각의 새로운 사진을 찍은 후에 나는 콜렉션 뷰를 다시로드하고 거기에 그림을 배치합니다. 그러나 예상대로이 방법을 사용하면 메모리 경고가 표시됩니다. 주로 원본 이미지를 배열에 저장하고 있기 때문입니다.

내 질문에, 이것을 달성하는 가장 좋은 방법은 무엇입니까? 배열의 이미지 URL을 저장하는 것에 대해 생각한 다음 URL이 필요하면이 이미지를 검색하여 컬렉션보기에 표시합니다. 또 다른 생각은 배열을 필요로하지 않고 문서에 직접 저장하는 것이지만 이미지를 검색하고 표시 할 때마다 너무 많은 처리가 필요하다고 생각합니다.

그래서 어떤 방법을 사용해야하는지 알 수 있습니까? 미리 감사드립니다.

+0

추가 촬영 한 이미지 데이터를 생성하지 않아야 자신의 키를 추가하고 배열에 그 사전을 추가하십시오. 이것은 배열에 이미지를 추가하는 가장 좋은 방법입니다. –

답변

0

카메라 이미지를 축소판으로 자르고 원본 이미지와 축소판을 모두 문서 디렉토리에 저장하는 것이 좋습니다. 테이블 뷰 및 컬렉션 뷰의 축소판을 검색합니다. 이미지 세부 정보를 보려면 이미지 뷰의 원점 이미지를 검색하십시오.

큰 이미지는 앱 성능을 저하시킬 수 있으므로 큰 이미지는 사용하지 말고 작은 프레임에서는 표시하십시오.

현재 문서 디렉토리에서 작은 이미지를로드하는 것이 큰 이미지보다 훨씬 빠릅니다.

0

제 생각에는 배열이 필요없이 이미지를 문서에 직접 저장할 수 있습니다. 백그라운드 스레드에서 문서의 이미지 저장을 시작할 수 있습니다.

처리 시간이 오래 걸리지 만 애플리케이션에서 메모리 문제가 발생하지 않습니다.

-1

있는 NSMutableArray의 복사본이 될 것입니다 속성, 직접하지 배열을 업데이트되지만,이 방법을 만들고 함께 메모리 문제를 nsmutabledictionary에서

- (NSArray *)allAlbumList { return [self.albumList copy]; //return [NSArray arrayWithArray:self.listItems];}

관련 문제