我正在主線程(不僅僅是簡單的dataWithContentsOfFile:
方法,我也在做一些數據操作)讀取一個非常大的文件到內存中,我的應用程序崩潰。在將此過程移至後臺線程後,該應用程序不再崩潰。唯一發生的是我得到的NSData
是nil
。大型NSData內存問題
是否有可能只有我的後臺線程中斷而不影響主線程,或者我錯過了什麼?此外,我可以指望這種行爲,只是當NSData
是nil
,沒有應用程序崩潰時顯示錯誤消息?先謝謝你。
編輯:
我得到的日誌是:
的malloc:* MMAP(大小= 629800960)失敗(錯誤碼= 12) 錯誤:無法分配區域 * *在malloc_error_break中設置斷點以進行調試
我使用的文件大小約爲250 MB。
我知道它爲什麼會在主線程上崩潰。我的問題是,爲什麼它沒有在輔助線程上崩潰?
崩潰時的錯誤信息是什麼?文件有多大?你使用的是什麼代碼?沒有這些信息,任何人都會說只是純粹的猜測。 – borrrden
你能分享一些代碼嗎? – zahreelay