Ios 大数据量的内存问题

Ios 大数据量的内存问题,ios,objective-c,nsthread,Ios,Objective C,Nsthread,我在主线程上读取了一个非常大的文件到内存中,不仅仅是简单的dataWithContentsOfFile:method,我还做了一些数据操作,我的应用程序崩溃了。在我将此进程移动到后台线程后,应用程序不再崩溃。唯一发生的事情是我得到的NSData为零 是否可能只有我的后台线程被中断而不影响主线程,或者我遗漏了什么?此外,我是否可以依靠这种行为,在NSData为nil时显示一条错误消息,而应用程序不会崩溃?先谢谢你 编辑: 我得到的日志是: malloc:*mmapsize=629800960失败错

我在主线程上读取了一个非常大的文件到内存中,不仅仅是简单的dataWithContentsOfFile:method,我还做了一些数据操作,我的应用程序崩溃了。在我将此进程移动到后台线程后,应用程序不再崩溃。唯一发生的事情是我得到的NSData为零

是否可能只有我的后台线程被中断而不影响主线程,或者我遗漏了什么?此外,我是否可以依靠这种行为,在NSData为nil时显示一条错误消息,而应用程序不会崩溃?先谢谢你

编辑:

我得到的日志是:

malloc:*mmapsize=629800960失败错误代码=12 错误:无法分配区域 **在malloc\u error\u break中设置断点以进行调试

我使用的文件大约有250 MB大


我知道它为什么会在主线程上崩溃。我的问题是,为什么它没有在一个辅助线程上崩溃?

我想这可能取决于崩溃,但如果是内存不足的问题,你可能使用了太多内存,或者创建了太多对象,这将使整个应用程序崩溃


您应该尝试使用较小的文件测试应用程序,并查看其行为。

当应用程序崩溃时,错误消息是什么?档案有多大?您使用的代码是什么?如果没有这些信息,任何人说的话都只是猜测。你能分享一些代码吗?或者也许可以采用其他技术将所有文件读入内存?这必须是内存问题,因为它适用于较小的文件。我还用仪器检查了一下,当我在主线程上读取文件时,iPad2上出现了大约300MB的崩溃。是的,特洛伊木马是对的。那样的话,你最好逐位读取文件。检查NSInputStream: