当我的应用程序第一次加载时,我正在加载几个大的csv文件,这在模拟器上工作正常,但是当我在手机上运行时,通过消息“程序接收信号”0“崩溃了大约30%” '这意味着内存崩溃。但是,当我在didReceiveMemoryWarning事件中放置一个断点时,它似乎没有被调用。
我是否遗漏了任何内容,或者程序通常会在没有调用事件的情况下关闭?
答案 0 :(得分:1)
如果您在应用程序主线程上的同步调用中加载文件,则会阻止它在同步调用完成之前接收其他消息(例如内存警告)。尝试将CSV文件加载为异步任务。 (一个很好的起点是在NSOperation
上阅读。)这将允许您的应用在加载过程中接收内存警告。
答案 1 :(得分:0)
如果您尝试加载小型csv会发生什么。如果它工作正常,那么你的csv太大会导致内存问题。如果是这样,您可能必须按块读取csv文件块并在读取新块之前释放旧块的内存。