如何加载场景异步,以便你可以有一个加载屏幕?

时间:2014-02-09 00:39:23

标签: sprite-kit

我的场景加载可能需要一段时间,我希望能够显示加载动画,但是,一切都锁定了。有没有办法加载下一个场景异步并在准备就绪时获得回调?

1 个答案:

答案 0 :(得分:7)

您可以使用dispatch_async为同步执行安排阻止。在异步块中加载场景,然后在主线程上执行回调方法,如下所示:

__weak MyClass *weakself = self; 
dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void){
    //Background thread
    //Load scene here
    dispatch_async(dispatch_get_main_queue(), ^(void){
        //Main thread
        //Call your callback method here
        [weakself sceneLoaded:loadedScene];
    });
});