1

私が取り組んでいるiOSアプリは、非常に大きなファイル(最大で2.7ギガのサイズ)といくつかのsqliteテーブルを処理します。大きなファイルをダウンロードした後、次のようなコンソールメッセージが表示されます。

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

また、ビュー(既にロードされて表示されている)をロードすると、「ペン先が見つかりません」というクラッシュが発生する他の問題が発生します。

アプリは大きなファイルがなくても問題なく実行できますが、持っていると非常に便利です。私が持っている質問はこれです:大きなファイルはある種のメモリの問題を引き起こしていますか、それともiOSがファイルに課すある種の制限がありますか?私は他の場所を見回しましたが、これに固有のものを見つけることができませんでした。

4

2 に答える 2

1

シミュレーターで動作しますか、それとも同じ問題がありますか?

ObjectAllocツールでInstrumentsを使用してアプリを実行することをお勧めします。ダウンロードの管理方法にリークがある可能性があります。または、このファイル用の空き領域がデバイスにありますか?

フラッシュに十分なスペースがある限り、巨大なファイルのダウンロードに成功した人もいます。これをテストすることができます-空きディスク容量を決定する方法を教えてくれるいくつかの関数が浮かんでいます。

別のアイデア:ファイル記述子に「F_NOCACHE」(fcntl)フラグを設定してファイルをディスクに書き込みます。これにより、書き込みは、ディスクブロックのキャッシュやその他のメモリの使用に使用される「均一バッファキュー」をバイパスし、システム自体へのストレスを大幅に軽減します。

于 2012-08-24T20:24:53.603 に答える
-1

iOSアプリの最大サイズ制限は2GBです。これがすべてのエラーの原因であり、アプリがクラッシュする理由です。大きなサイズのファイルをファイルホスティングサイトにアップロードし、必要なときにアプリにストリーミングすることをお勧めします。

于 2012-08-24T20:20:16.967 に答える