2009-10-31 2 views
0

내가 작업하고있는이 응용 프로그램은 사용자가 사진을 찍을 수있게하고 로컬로 저장합니다 (Core Data를 통한 작은 축소판 이미지 및 문서 디렉토리의 전체 크기 이미지). 문서 디렉토리에 이미지 파일을 쓰는 데 오랜 시간이 걸린다는 것을 알았습니다. 제 iPhone 3GS에서는 8 초, iPhone 3G와 1 세대 iPod touch에서는 더 길었습니다. 이 방법으로 파일을 작성합니다.iPhone에 대용량 파일을 작성하는 가장 빠른 방법은 무엇입니까?

[imgData writeToFile : imagePath atomically : YES];

...이 작업을 수행하는 더 빠른 방법은 무엇입니까? 아이폰의 카메라 앱은 파일 시스템에 이미지를 매우 빠르게 작성하는 것으로 보인다. 글쓰기를 쓰레드에서 할 수는 있지만, 쓰레드가 끝나기 전에 내 앱을 종료하는 것에 대해 걱정하고 있습니다.

답변

2
  • 밀접하게 관련 질문은 before을 요구하고 있으며, 일반적인 의견은 아이폰의 카메라 응용 프로그램은 문서화되지 않은 내부 API 호출을 사용한다는 것입니다. 나는 이것이 사실인지 개인적으로 확신하지 못한다. 나는 이미지가 저장 될 때까지 아이폰 앱이 백그라운드에서 지속될 가능성이 높다고 생각한다. 아직 비 jailbroken 기기에서 제 3 자 앱에는 사용할 수없는 "상품"이다.
  • 아마도 이미지를 저장하기 위해 실제로 스레드를 사용해야하지만 데이터 지향적 인 방법으로는 바이트 청크로 시도해야 할 것입니다. 이렇게하면 사용자가 응용 프로그램의 대리자의 - (void) applicationWillTerminate(UIApplication *)application 메서드에서 홈 버튼을 누르면 데이터 저장 프로세스를 디스크에 마무리 할 수 ​​있습니다. 이 경우에만 an extra 5 seconds을 구입할 수 있지만 아무것도 사용하지 않는 것보다 낫습니다. 비슷한 권고 사항은 on saving a text file입니다. 희망이 도움이 행운을 빕니다!
+0

writeToFile : atomically 옵션은 한 번에 작은 청크를 작성하는 것보다 낫습니다. 전체 파일을 가지고 있는지 아닌지 알기 때문에 ... 배경 스레드는 좋은 생각입니다. –

+0

applicationWillTerminate에서 추가 5 초를 이용하는 것을 고려하십시오. – zaph

관련 문제