2012-08-24 2 views
1

Приложение iOS Я работаю над обработкой очень больших файлов (наибольший размер 2.7 гигабайт), а некоторые таблицы sqlite после загрузки больших я получаю консольные сообщения, подобные этому :Ограничение по размеру файла iOS (5.1+)

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

также другие вопросы, которые случаются, загружая вид (который уже загружен и представлены) приведет к сбою, говоря «СИБ не может быть расположен».

Приложение может работать без большого файла просто отлично, но это очень полезно иметь. У меня есть вопрос: является ли большой файл причиной какой-то проблемы с памятью, или существует какой-то предел, который iOS размещает на файлах? Я осмотрелся в других местах, и я не смог найти ничего конкретного.

ответ

1

Работает ли он в Симуляторе или у вас есть такая же проблема?

Предлагаю вам запустить приложение с помощью инструментов с помощью инструмента ObjectAlloc. Вероятно, у вас есть некоторые утечки в способе управления загрузкой. Или есть ли свободное место на устройстве для этого файла?

У других был успех при загрузке огромных файлов, если на вспышке достаточно места. Вы можете проверить это - есть несколько функций, плавающих вокруг, которые расскажут вам, как определить свободное место на диске.

Другая идея: напишите файл на диск с флагом «F_NOCACHE» (fcntl), установленным в дескрипторе файла. Это заставит записи обходить «единую очередь буферов», которая используется для кэширования блоков диска и для других применений памяти, и значительно снижает стресс для самой системы.

+0

Приложение отлично работает в симуляторе, и у устройства достаточно места для файла. – CBredlow

+0

Изобразительное - посмотрите на использование памяти во время загрузки. У симулятора есть куча памяти и не закончится, даже если вы просочитесь. Реальное устройство будет. Кроме того, этот флаг nocache действительно может помочь уменьшить давление на систему, как я указал. Нет никакого способа измерить или наблюдать UBC (унифицированный буферный кеш) - я общался с даже менеджерами системных разработчиков iOS/OSX на WWDC об этом и не мог сделать это (сейчас). У меня были свои проблемы с чрезмерным давлением на UBC. –

+0

У меня, к сожалению, нет времени прямо сейчас, чтобы проверить его, поэтому в понедельник я буду проверять и проверять, работает ли это. – CBredlow

-1

Максимальное ограничение размера приложения iOS составляет 2 ГБ, это ограничение вызывает все ошибки и поэтому ваше приложение рушится. Я бы порекомендовал вам загружать файлы большого размера на сайт для размещения файлов и транслировать их в приложение, когда вам это нужно.

+0

Есть ли у вас какие-либо ссылки на это? Я просмотрел документацию и не смог найти это. – CBredlow

+0

Право - приложение имеет 32 бита. Но файлы имеют длину 64 бит, поэтому, очевидно, может быть намного больше. –

+0

находится здесь [здесь] (http://developer.apple.com/library/ios/documentation/LanguagesUtilities/Conceptual/iTunesConnect_Guide/iTunesConnect_Guide.pdf) – ch1pa

Смежные вопросы