2012-08-24 4 views
1

큰 파일 (최대 크기 2.7 기가)과 일부 sqlite 테이블을 처리하는 iOS 앱은 큰 다운로드 후이 메시지와 같은 콘솔 메시지를 처리합니다 : 일, (이미로드 및 제시되었다)보기를로드하는 것은 "펜촉을 찾을 수 없습니다"라는 사고의 원인이됩니다파일 크기 제한 iOS (5.1+)

Aug 24 14:50:28 unknown TheAppName[1407] <Warning>: Error opening database: 14 unable to open database file 

또 다른 문제.

앱은 대용량 파일 없이도 실행할 수 있지만 매우 유용합니다. 내가 가지고있는 질문은 다음과 같습니다. 큰 파일에 일종의 메모리 문제가 발생 했습니까? 아니면 iOS가 파일에 저장하는 일종의 제한이 있습니까? 나는 다른 곳을 둘러 보았고 이것에 특정한 것을 찾을 수 없었다.

답변

1

시뮬레이터에서 작동합니까 아니면 같은 문제가 있습니까?

ObjectAlloc 도구를 사용하여 Instruments를 사용하여 앱을 실행하는 것이 좋습니다. 다운로드를 관리하는 방식에 누수가있을 가능성이 큽니다. 또는이 파일에 대한 장치의 여유 공간이 있습니까?

다른 사람들은 플래시에 충분한 공간이있는 한 대용량 파일을 다운로드하여 성공했습니다. 이를 테스트 할 수 있습니다. 여유 디스크 공간을 판별하는 방법을 알려주는 몇 가지 함수가 있습니다.

다른 생각 : 파일 설명자에 "F_NOCACHE"(fcntl) 플래그가 설정된 디스크에 파일을 작성하십시오. 이렇게하면 쓰기가 디스크 블록을 캐시하고 다른 메모리 용도로 사용되는 "균일 버퍼 대기열"을 우회하여 시스템 자체의 스트레스를 크게 줄일 수 있습니다.

+0

앱이 시뮬레이터에서 완벽하게 작동하며 기기에 파일 공간이 충분합니다. – CBredlow

+0

Fine - 다운로드하는 동안 메모리 사용량을 살펴보십시오. 시뮬레이터에는 많은 메모리가 있으며 누출 된 경우에도 실행되지 않습니다. 실제 장치가됩니다. 또한, nocache 플래그는 실제로 시스템에 대한 압박감을 줄이는 데 도움이 될 수 있습니다. UBC (통합 버퍼 캐시)를 측정하거나 관찰 할 수있는 방법이 없습니다. WWDC의 iOS/OSX 시스템 개발자에게도이 방법은 없으며 지금은 할 방법이 없습니다. 나는 UBC에 너무 많은 압력을가하면서 내 자신의 문제를 안고있다. –

+0

불행히도 지금은 테스트 할 시간이 없으므로 월요일에 테스트 해보고 이것이 작동하는지 확인해 보겠습니다. – CBredlow

-1

iOS 앱의 최대 크기 제한은 2GB이며, 이는 모든 오류의 원인이며 앱이 충돌하는 이유입니다. 큰 파일을 파일 호스팅 사이트에 업로드하고 필요할 때 응용 프로그램으로 스트리밍하는 것이 좋습니다.

+0

그런 일이 발생 했습니까? 나는 사과의 문서를보고 그것을 발견 할 수 없었다. – CBredlow

+0

오른쪽 - 앱은 32 비트입니다. 하지만 파일의 길이는 64 비트이므로 분명히 훨씬 더 클 수 있습니다 –

+0

여기에 있습니다 (http://developer.apple.com/library/ios/documentation/LanguagesUtilities/Conceptual/iTunesConnect_Guide/iTunesConnect_Guide.pdf) – ch1pa