2013-07-03 54 views
4

我是可可的相對新手,並且正在構建Mac OS X應用程序。我的應用程序(SDK 10.8 + Deployment 10.6)在OSX 10.8(實際上是多臺機器)上運行良好,但在較舊的10.6上,它崩潰了。檢查通過儀器的日誌後,我發現了以下錯誤:錯誤:unlockFocus調用太多時間

「unlockFocus方法稱爲太多時間」

幾次試跑之後,我已經想通它,因爲一些可可圖紙我做的。我不知道爲什麼會這樣。這是因爲硬件還是操作系統限制?我已閱讀Apple文檔,但沒有發現任何內容。

我知道每一種情況都不一樣,但是有一個普遍的原因嗎? 「太多時間」真的意味着什麼?一定時間內的限制?

+2

您需要發佈您的繪圖代碼,或者創建一個演示該問題的測試項目(然後您至少可以將其傳遞給Apple的開發人員支持)。 – trojanfoe

回答

0

我也有這個問題,我通過刪除[[NSColor blackColor] redComponent](有些NSColor實例不支持此屬性)調用解決了這個問題。

+0

如果要使圖形顯示在圖像上而不是屏幕上,則必須先將焦點鎖定在圖像上。繪圖完成後,您必須解鎖焦點。所以可能會在你的代碼中解鎖焦點API被多次調用。請檢查 –

+0

這不一定與問題有關。也許當我畫一個單元格並調用redComponent(不需要調用{lock | unlock} Focus)時,會引發異常,並可能會在更高範圍內使lockFocus/unlockFocus失去平衡。 –