Ios 已尝试添加已具有父节点的SKNode:<;SKScene>;名称:';(空)和#x27;帧:{0,0},{1,1}';
我添加了我的声音管理器(在我的游戏中播放声音是singleton),并出现以下问题: 已尝试添加已具有父节点的SKNode:名称:'(null)'帧:{{0,0},{1,1}'Ios 已尝试添加已具有父节点的SKNode:<;SKScene>;名称:';(空)和#x27;帧:{0,0},{1,1}';,ios,singleton,Ios,Singleton,我添加了我的声音管理器(在我的游戏中播放声音是singleton),并出现以下问题: 已尝试添加已具有父节点的SKNode:名称:'(null)'帧:{{0,0},{1,1}' @property (strong, nonatomic) VSSoundSystem *soundSystem; 在-(id)initWithSize:(CGSize)我的场景大小中: self.soundSystem = [VSSoundSystem sharedSystem]; [self addChild:se
@property (strong, nonatomic) VSSoundSystem *soundSystem;
在-(id)initWithSize:(CGSize)我的场景大小中:
self.soundSystem = [VSSoundSystem sharedSystem];
[self addChild:self.soundSystem];
我需要将其作为子级添加,因为我需要运行操作
VSSoundManager初始化:
+ (id)sharedSystem {
static VSSoundSystem *sharedSystem = nil;
@synchronized(self) {
if (sharedSystem == nil)
sharedSystem = [[self alloc] init];
}
return sharedSystem;
}
它工作正常,但在第二级加载时崩溃您使用的是什么框架?cocos2d? 我的猜测是,当你加载第二个关卡时,你会再次将这个单体添加到另一个场景中。 由于它是一个独生子,它可能仍然会有旧的,被破坏的场景作为父母 您可以尝试以下方法:
[self.soundSystem removeFromParent]
或
就在你破坏旧场景之前。谢谢!我添加了
[self.soundSystem removeFromParent]
就在[self addChild:self.soundSystem]之前代码>。PS我用的是SpriteKitt很棒!因此,您可以接受答案(通过单击答案左侧的小复选标记),以便其他人知道这是有效的解决方案!
[self.soundSystem removeFromParentAndCleanup:NO]