1

我正在处理的 iOS 应用程序处理非常大的文件(最大为 2.7 gig)和一些 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 回答