2012-04-21 2 views
0

Мое приложение (по-видимому, в режиме отладки только), иногда (в, казалось бы, непредсказуемым образом) beachballs бесконечно в течение этого простого утверждения:Beachballing во время «NSOpenPanel * панель = [NSOpenPanel openPanel];»

NSOpenPanel *panel = [NSOpenPanel openPanel]; 

It просто пляжный мяч бесконечно. Ничего не происходит. Использование памяти не меняется вообще. Может быть, приложение попадает в бесконечный цикл где-то внутри фреймворков.

Что может быть причиной этого? Как я могу проанализировать причину?

+0

Я бы перезапустил, это не нормально, похоже, что диспетчер окон работает. если он все еще случится, попробуйте его на каком-то другом оборудовании и посмотрите, все ли это делает. –

+0

@JustinMeiners Ну, похоже, это не так, как сейчас. Некоторое время это было случайным вопросом (во время которого я перезапускался и закрывался много раз). Обычно, во второй или третьей попытке, он снова начинает работать. – Enchilada

+0

Это приложение изолировано? –

ответ

0

Что касается анализа: когда вы говорите «режим отладки», вы имеете в виду, что он работает под отладчиком? Если да, что произойдет, если вы нажмете кнопку «Пауза»?

Другая возможность - использовать Activity Monitor, чтобы взять образец вашего процесса во время его пляжной игры.

+0

Да, я имею в виду, когда он работает под отладчиком. Я попробую ваши предложения и вернусь к вам, когда это произойдет снова. Когда это будет, кто знает: S – Enchilada

+0

Вы уверены, что он не остановлен в точке останова? Кроме того, вы используете 'NSOpenPanel' только в основном потоке, верно? –

+0

@KenThomases Я уверен, что меня не остановили в точке останова. Однако я не помню 100%. Я обязательно проверю это в следующий раз, когда это произойдет. Я также буду следить за тем, чтобы я был на главной теме (которой я должен быть). Благодаря! – Enchilada

Смежные вопросы