2012-04-21 42 views
0

我的應用程序(貌似在僅調試模式),有時(看似不可預知的方式)這種簡單的語句期間beachballs無限:Beachballing期間「NSOpenPanel *面板= [NSOpenPanel openPanel];」

NSOpenPanel *panel = [NSOpenPanel openPanel]; 

它無限的沙灘球。什麼都沒有發生。內存使用情況完全沒有改變。這可能是該應用程序在框架內的某個地方觸及了無限循環。

這可能是什麼原因造成的?我如何分析原因?

+0

我會重新啓動,這是不正常的,這聽起來像窗口管理器被擡起。如果它仍然發生在其他硬件上嘗試它,看看它是否仍然如此 – 2012-04-21 16:15:15

+0

@JustinMeiners好吧,它不像它現在正在發生。這是一段時間以來的一個隨機問題(在此期間我已重新啓動並關閉很多次)。通常,第二次或第三次嘗試重新開始工作。 – Enchilada 2012-04-21 16:17:07

+0

這款應用是否爲沙盒? – 2012-04-22 00:20:22

回答

0

至於如何分析它:當你說「調試模式」,你的意思是它在調試器下運行?如果是這樣,如果你點擊暫停按鈕會發生什麼?

另一種可能性是使用活動監視器在您的過程中進行抽樣,

+0

是的,我的意思是它在調試器下運行。我會嘗試你的建議,並在這再次發生時回覆你。那時候,誰知道:S – Enchilada 2012-04-21 16:34:29

+0

你確定它沒有停在斷點處嗎?另外,你只在主線程上使用'NSOpenPanel',對吧? – 2012-04-21 17:13:26

+0

@KenThomases我很確定我沒有停在斷點處。但是,我不記得100%。我會確保在下次發生這種情況時檢查。我也會確保我在主線程(我應該是)。謝謝! – Enchilada 2012-04-21 20:07:59