我正在主线程(不仅仅是简单的dataWithContentsOfFile:
方法,我也在做一些数据操作)读取一个非常大的文件到内存中,我的应用程序崩溃。在将此过程移至后台线程后,该应用程序不再崩溃。唯一发生的是我得到的NSData
是nil
。大型NSData内存问题
是否有可能只有我的后台线程中断而不影响主线程,或者我错过了什么?此外,我可以指望这种行为,只是当NSData
是nil
,没有应用程序崩溃时显示错误消息?先谢谢你。
编辑:
我得到的日志是:
的malloc:* MMAP(大小= 629800960)失败(错误码= 12) 错误:无法分配区域 * *在malloc_error_break中设置断点以进行调试
我使用的文件大小约为250 MB。
我知道它为什么会在主线程上崩溃。我的问题是,为什么它没有在辅助线程上崩溃?
崩溃时的错误信息是什么?文件有多大?你使用的是什么代码?没有这些信息,任何人都会说只是纯粹的猜测。 – borrrden
你能分享一些代码吗? – zahreelay