尝试添加已经拥有父级的SKNode:<skscene> name:&#39;(null)&#39; frame:{{0,0},{1,1}}&#39; </skscene>

时间:2014-08-20 18:39:12

标签: ios singleton

我添加了我的声音管理器(在我的游戏中播放声音是单例)并且遇到了这个问题:

尝试添加已经拥有父级的SKNode:name:'(null)'frame:{{0,0},{1,1}}'

@property (strong, nonatomic) VSSoundSystem *soundSystem;

in - (id)initWithSize:(CGSize)我的场景大小:

self.soundSystem = [VSSoundSystem sharedSystem];
[self addChild:self.soundSystem];

我需要将它作为孩子添加,因为我需要运行动作

VSSoundManager init:

+ (id)sharedSystem {
static VSSoundSystem *sharedSystem = nil;
@synchronized(self) {
    if (sharedSystem == nil)
        sharedSystem = [[self alloc] init];
}

return sharedSystem;

}

它工作正常但在第二级加载时崩溃

1 个答案:

答案 0 :(得分:2)

您使用的是什么框架? cocos2d的? 我的猜测是,当你加载第二级时,你将单例AGAIN添加到另一个场景。 由于它是一个单身人士,它可能仍然会将旧的,被破坏的场景作为父母。

您可以尝试这样的事情:

[self.soundSystem removeFromParent]

[self.soundSystem removeFromParentAndCleanup:NO]

在你摧毁旧场景之前。