示例项目:https://github.com/wilkinho/RemoveFromParentTest
Swift版本:1.2 Xcode版本:6.3
我尝试从其父级中删除SKSpriteNode,并将其添加回自己的SKAction运行块(或回调)中的SKScene。结果在iOS 7.1和8.3中有所不同。
在iOS 7.1中,触摸设备后,控制台会打印:
sprite.parent:Optional(<SKScene> name:'(null)' frame:{{0, 0}, {320, 568}})
sprite.scene:nil
sprite2.parent:Optional(<SKScene> name:'(null)' frame:{{0, 0}, {320, 568}})
sprite2.scene:Optional(<SKScene> name:'(null)' frame:{{0, 0}, {320, 568}})
在iOS 8.3中,触摸设备后,控制台会打印:
sprite.parent:Optional(<SKScene> name:'(null)' frame:{{0, 0}, {320, 568}})
sprite.scene:Optional(<SKScene> name:'(null)' frame:{{0, 0}, {320, 568}})
sprite2.parent:Optional(<SKScene> name:'(null)' frame:{{0, 0}, {320, 568}})
sprite2.scene:Optional(<SKScene> name:'(null)' frame:{{0, 0}, {320, 568}})
第一个SpriteNode在iOS 7.1中丢失了SKScene引用,但在iOS 8.3中没有丢失。 我认为这是Swift 1.2的一个错误,我需要在我的项目中解决它。任何见解将不胜感激。