Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SKSpriteNode仅在iOS 9或更高版本上可见,无论是在模拟器还是真实手机上?_Ios_Swift_Swift3_Skspritenode - Fatal编程技术网

SKSpriteNode仅在iOS 9或更高版本上可见,无论是在模拟器还是真实手机上?

SKSpriteNode仅在iOS 9或更高版本上可见,无论是在模拟器还是真实手机上?,ios,swift,swift3,skspritenode,Ios,Swift,Swift3,Skspritenode,当我在手机上试用我的应用程序时,我注意到了这个奇怪的错误。在我的游戏中,我创建了一个SKSpriteNode,然后在几秒钟后将其删除。在所有iOS 9设备上,这都能完美地工作。但是在iOS 8上,整个节点从未出现 我试过,如果它是图像,但它仍然发生在只有一个红色的SpriteNode 这不是传统的“红色X”错误,只是什么都没有出现 我使用最新版本的Xcode:Version8.1(8B62)和Swift 3 它发生在模拟器和真实手机上,只要它们在iOS 9下 它发生在32位(iPhone 5s)

当我在手机上试用我的应用程序时,我注意到了这个奇怪的错误。在我的游戏中,我创建了一个
SKSpriteNode
,然后在几秒钟后将其删除。在所有iOS 9设备上,这都能完美地工作。但是在iOS 8上,整个节点从未出现

  • 我试过,如果它是图像,但它仍然发生在只有一个红色的SpriteNode
  • 这不是传统的“红色X”错误,只是什么都没有出现
  • 我使用最新版本的Xcode:Version8.1(8B62)和Swift 3
  • 它发生在模拟器和真实手机上,只要它们在iOS 9下
  • 它发生在32位(iPhone 5s)和64位(iPhone 6)上
  • 以下是与节点相关的所有代码:

    var forceShield: SKSpriteNode! //outside of the function to make it globally accessable
    
    forceShield = SKSpriteNode(imageNamed: "forceShield") //SKSpriteNode(color: UIColor.red, size: CGSize(width: 50, height: 50)) gave the exact same error
    forceShield.position = ship.position
    forceShield.xScale = 0.4 * scaleFactor
    forceShield.yScale = 0.4 * scaleFactor
    forceShield.zPosition = 3
    
    let distanceConstraint = SKConstraint.distance(SKRange(lowerLimit: 0.0, upperLimit: 0.0), to: ship)
    let orientConstraint = SKConstraint.orient(to: ship, offset: SKRange(lowerLimit: 0.0))
    forceShield.constraints = [orientConstraint, distanceConstraint]
    
    addChild(forceShield)
    
    并在另一个函数中删除它

    forceShield.removeFromParent()
    
    Scalefactor
    是一个始终大于或等于1的数字,用于缩放不同设备的节点
    Ship
    是另一个节点,后面跟着forceshield(约束就是这样做的)


    如何使此节点出现在每个设备上?

    此错误是由iOS 8中未正确处理的
    距离约束引起的。我通过添加
    forceShield
    作为
    ship
    的子视图来修复此问题,该子视图自动使其正确跟随
    ship
    。这个解决方案当然并不总是很有用,但它对我很有用。

    这个错误是由
    距离约束造成的,显然在iOS 8中没有正确处理该约束。我通过添加
    forceShield
    作为
    ship
    的子视图来修复此问题,该子视图自动使其正确跟随
    ship
    。这个解决方案当然并不总是很有用,但对我来说很有用。

    这是在所有iOS 8设备上,还是仅在32位设备上?很好,你能详细说明哪些是32位,哪些是63位吗?另外,它发生在Iphone 5s(iOS 8.3)和Iphone 6(iOS 8.3)上。然后它也是64位的,而不是我所想的只影响运行8.0和8.1的32位设备的已知问题。好的,我会在我的问题中提出,如果你试图消除限制,它会起作用吗?这是在所有iOS 8设备上,还是仅在32位设备上?好的一点,你能详细说明哪些是32位的,哪些是63位的吗?同样,它也发生在Iphone 5s(iOS 8.3)和Iphone 6(iOS 8.3)上。然后它也是64位的,而不是我所想的只影响运行8.0和8.1的32位设备的已知问题。好的,我将把这一点也放在我的问题中,如果你试图消除限制,它会起作用吗?