0

在我的应用程序中,我必须一次从服务器下载多个文件(超过 1000 个文件)。我创建了操作队列来下载它们。但是我必须在主线程上启动 urlconnection 以便可以调用委托方法。一切正常,但在 600 个文件后应用程序崩溃而没有任何日志。

以下是我正在使用的步骤:

  1. 创建 nsurlconnection 的操作。
  2. 将操作添加到队列。
  3. 在主线程上开始操作。(我也尝试过[connection scheduleInRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];,但效果不佳。)

但是在超过 500 个文件之后,应用程序每次都会崩溃。欢迎任何帮助。

4

1 回答 1

0

每次连接接收到数据(用 通知委托connection:didReceiveData:)时,您应该立即将该数据写入磁盘。这样可以确保在任何时候都在内存中保存最少的数据量。如果您不这样做并且同时下载多个大文件,则很容易导致内存不足的情况,从而导致应用程序终止。

于 2013-07-03T13:52:00.890 回答