【发布时间】:2013-08-06 08:51:03
【问题描述】:
我在主线程上将一个非常大的文件读入内存(不仅仅是简单的dataWithContentsOfFile: 方法,我还在做一些数据操作),我的应用程序崩溃了。在我将此进程移至后台线程后,该应用程序不再崩溃。唯一发生的事情是我得到的NSData 是nil。
是否有可能只有我的后台线程被中断而不影响主线程,或者我错过了什么?另外,我可以指望这种行为并在NSData 为nil 时显示错误消息,而不会导致应用程序崩溃吗?提前谢谢你。
编辑:
我得到的日志是:
malloc: * mmap(size=629800960) 失败(错误代码=12) 错误:无法分配区域 ** 在 malloc_error_break 中设置断点进行调试
我使用的文件大小约为 250 MB。
我知道它为什么在主线程上崩溃了。我的问题是,为什么它没有在辅助线程上崩溃?
【问题讨论】:
-
崩溃时的错误信息是什么?文件有多大?您使用的代码是什么?如果没有这些信息,任何人说的任何话都只是纯粹的猜测。
-
你能分享一些代码吗?
标签: ios objective-c nsthread