2012-08-02 9 views
3

사용자가 여러 이미지를 선택하여 라이브러리에 저장하도록 요청할 수있는 응용 프로그램을 작성 중입니다. ALAssetLibrary를 사용하여 사용자가 선택할 수있는 갤러리의 모든 이미지 목록을 만듭니다. 사용자가 저장을 요청하면 [library writeImageToSavedPhotosAlbum:metadata:completionBlock:]을 사용하여 저장된 사진에 한 번에 하나씩 이미지를 저장합니다. 먼저 한 이미지를 저장 한 다음 완료 블록에서 다른 이미지를 저장하는 등의 작업을 수행합니다.ALAssetLibraryChangedNotification이 여러 번 트리거 됨

ALAssetsLibraryChangedNotification을 저장할 이미지 수만큼 호출해야합니다. 그러나 그것은 두 번이나 여러 번 불려지고 있습니다. 이것이 일어날 수있는 단서가 있습니까? 나는 실제로 모든 선택된 이미지에 대해 한 번만 이미지를 쓰고 있음을 확인했다. 알림은 각 이미지를 저장 한 직후에 발생합니다. 저장된 이미지마다 알림을 한 번 받으면 라이브러리를 다시로드하고 애셋을 다시로드합니다. 자산을 다시로드 할 때마다 알림이 다시 시작됩니다.

마지막 알림 이후에 실제 처리를 수행하도록 선택할 수 있도록 이러한 알림이 더 많이 나오는지 알 수있는 방법이 있습니까?

+0

이봐, 그냥 똑같은 문제에 직면 해 어떤 해결책을 찾았습니까? – shem

+0

어떤 솔루션을 찾았습니까? –

답변

0

내가 알아 낸 가장 좋은 해결책은 저장 작업을 수행하기 전에 옵저버를 제거하는 것이 었습니다.

[[NSNotificationCenter defaultCenter] removeObserver:self name:ALAssetsLibraryChangedNotification object:nil]; 

그리고 모든 것이 저장되면 알림에 다시 가입하십시오.

0

사진 스트림 업데이트가있는 경우 추가 알림이 필요할 수 있습니다.

관련 문제