Ios SpriteKit暂停恢复错误

Ios SpriteKit暂停恢复错误,ios,swift,sprite-kit,resume,Ios,Swift,Sprite Kit,Resume,这是按钮被声明的地方(在函数之外) 错误发生在代码的第三行。 这是电脑告诉我的 2017-06-30 07:32:26.053429-0600熬夜[4635:1030550]* 由于未捕获异常而终止应用程序 “NSInvalidArgumentException”,原因:“试图添加一个 已具有父项:名称:'(null)' 纹理:['向上按钮'(200 x 200)]位置:{0,-254} 比例:{0.57,0.57}大小:{56.800003051757812,56.8000031757812}

这是按钮被声明的地方(在函数之外)

错误发生在代码的第三行。 这是电脑告诉我的

2017-06-30 07:32:26.053429-0600熬夜[4635:1030550]* 由于未捕获异常而终止应用程序 “NSInvalidArgumentException”,原因:“试图添加一个 已具有父项:名称:'(null)' 纹理:['向上按钮'(200 x 200)]位置:{0,-254} 比例:{0.57,0.57}大小:{56.800003051757812,56.8000031757812} 锚定:{0.5,0.5}旋转:0.00' *第一次抛出调用堆栈:(0x188da6fd8 0x187808538 0x188da6f20 0x1984f1738 0x1984f1664 0x100073d40 0x100074908 0x1984d7050 0x18ef0a46c 0x18ef05804 0x18eed6418 0x18f6cff64 0x18f6ca6c0 0x18f6caaec 0x188d55424 0x188d54d94 0x188D529A00x188C82D94 0x18a6ec074 0x18ef3b130 0x1000078C5C 0x187c9159c)libc++abi.dylib: 以NSException类型的未捕获异常终止


原因是您正在将
upButton
作为子节点两次添加到某个节点


最有可能的是,您的
touchesend
方法中的行
self.addChild(upButton)
导致了问题。此时,验证
nil
中是否有
upButton.parent
。如果没有,则代码中存在逻辑错误。

您需要发布更多代码,其中一个按钮不存在,正在被读取为NIL。我已向代码添加了一些上下文,并显示了变量的声明位置,因为我认为这是我的问题的根源。希望这足够了:)等等,你正在使用场景工具包吗?我正在使用游戏工具包和精灵工具包。请同时添加错误的详细信息,例如控制台中打印的内容以及应用程序崩溃的代码行。正如KnightOfDragon所说,当您试图访问某个节点时,该节点可能为零。另一个可能出现的问题是节点已经有父节点,当您再次调用该节点上的addChild时,应用程序崩溃,因为节点不能有两个父节点。
override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
let touch = touches.first
let touchLocation = touch!.location(in: self)
if continueButton.contains(touchLocation) {
    scene?.view?.isPaused = false
    pauseMenu.removeFromParent()
    self.addChild(pauseButton)
    self.addChild(upButton)
    continueButton.removeFromParent()
}
}
class GameScene: SKScene {
var mainturret = SKSpriteNode(imageNamed: "Main Turret")
var pauseButton = SKSpriteNode(imageNamed: "Pause Simbol")
var angleToShoot = 0
var touchIsOn = 0
var pointTwoSecondInterval = 0
let pauseMenu = SKSpriteNode(imageNamed: "Paused")
var zombieSpawningTimer = Timer()
var upButton = SKSpriteNode(imageNamed: "Up Button")
let downButton = SKSpriteNode(imageNamed: "Down Button")
let popUpMenu = SKSpriteNode(imageNamed: "TurretSpot")
var continueButton = SKSpriteNode(imageNamed: "Continue")
...}
import UIKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {