В попытке создать полосу загрузки для разрабатываемой игры для iPhone (с использованием Cocos2D) я хотел использовать многопоточный подход.
Один поток показывает экран загрузки и запускает основной цикл событий приложения, в то время как новый поток автоматически загружает все спрайты в фоновом режиме (через spriteWithFile ), а затем добавляет их в слой.
Я создаю новый поток, используя метод detachNewThreadSelector (NSThread) (который отправляет обновления статуса загрузки в основной поток через executeSelectorOnMainThread ).
Проблема, с которой я сталкиваюсь, заключается в том, что любые вызовы OpenGL (например, те, которые встречаются в методе spriteWithFile ) в новом потоке умирают с ошибкой шины или некоторой ошибкой доступа к памяти. Я предполагаю, что это потому, что оба потока пытаются сделать вызовы OpenGL одновременно, или новый поток не знает о контексте OpenGL.
Что нужно сделать, чтобы несколько потоков могли совершать вызовы OpenGL на iPhone с помощью Cocos2D-iPhone.