2012-07-13 59 views
0

有時我正面臨控制檯中的「接收到的內存警告」。看到這裏:如何捕捉應用程序中的警告崩潰報告:收到的內存警告

2012-07-13 11:39:54.344 PROJ42 [25255:707] Received memory warning. 

該應用程序不會崩潰。但我想解決這個警告。
有沒有辦法找出爲什麼我得到這個警告併發送報告? 如果是的話,我該怎麼做?

信息:我知道我可以用儀器運行來找到這樣的警告。但我想知道是否有可能從終端用戶的設備上捕獲此警告?

我該如何捕捉這些警告?

回答

1

我認爲這是沒有內置的方式來知道發生了什麼......

你可以嘗試保存一些指示NSString每個地方你分配新的對象/開放新資源的地方(如「 MAINVIEW :: createNewImage =>頁頭 「或」 MAINVIEW :: createNewImage =>加載資源「),然後進行內部

- (void)didReceiveMemoryWarning 

的該字符串的內容的NSLog這可能需要時間,但CA ñ表明你的問題的地方。

+0

謝謝,這個答案對我來說已經足夠了。 – brush51 2012-07-13 10:36:22

2

UIViewController有可以覆蓋被調用的方法:

- (void)didReceiveMemoryWarning 

這是被調用,並在其中您可以編寫自定義代碼的方法。

+0

我知道這個方法。但是我怎樣才能捕捉到警告信息呢?有時會出現Warning Level = 1等等。或者更多信息**爲什麼**我收到警告。 – brush51 2012-07-13 10:06:00

+0

據我所知,沒有辦法找出內存不足的原因,該方法也沒有任何爭論。 – werner 2012-07-13 10:50:13

+0

當在後臺運行的應用程序和其他應用程序需要更多內存時,也會發送此警告。所以你應該總是實現這個方法並釋放盡可能多的內存。這並不一定表明你的應用消耗了太多內存。無論您的應用程序具有哪種警告級別,也無法確定您的應用程序是否會在發出此類警告後死亡。即使警告級別設置爲1,也可能在後臺死亡。 – Kerni 2012-07-13 12:54:55

1

由於在您的應用程序中使用了大量的內存,所以會發生內存警告。嘗試釋放內存。