0

当我的应用程序第一次加载时,我正在加载几个大的 csv 文件,这在模拟器上运行良好,但在我的手机上运行时,它崩溃了大约 30%,并显示消息“程序收到信号“0””,这意味着内存崩溃。但是,当我在 didReceiveMemoryWarning 事件中放置断点时,它似乎没有被调用。

我是否遗漏了任何内容,或者程序是否会在没有调用事件的情况下正常关闭?

4

2 回答 2

1

如果您在应用程序的主线程上的同步调用中加载文件,这将阻止它在同步调用完成之前接收其他消息(例如内存警告)。尝试使加载 CSV 文件成为异步任务。(一个很好的起点是阅读NSOperation。)这将允许您的应用程序在加载过程中接收内存警告。

于 2011-05-04T15:47:12.170 回答
0

如果您尝试加载小型 csv,会发生什么情况。如果它工作正常,那么您的 csv 太大并导致内存问题。如果是这样,您可能必须逐块读取 csv 文件并在读取新文件之前释放旧文件的内存。

于 2011-05-04T14:05:34.653 回答