保存和读取Sprites UserData中的信息

Pet*_*r L 4 user-data sprite-kit swift

我正在尝试将值保存到精灵的用户数据中并能够将其读取.

继承人我所拥有的,由于某种原因,价值永远不会得到保存并保持为零.

import SpriteKit

let frame = SKScene()

func createSprite() {
    let sprite = SKSpriteNode()
    sprite.userData?.setValue("100", forKeyPath: "key")
    frame.addChild(sprite)
}

createSprite()

for child in frame.children where child is SKSpriteNode {
    print(child.userData?.valueForKey("key") as? String)
    //prints the value saved in the childs user data

    if child.userData?.valueForKey("key") as? String == "100" {
        print("It was a Success!")
    }
    if child.userData?.valueForKey("key") as? String == nil {
        print("There was a problem :(")
    }
}
Run Code Online (Sandbox Code Playgroud)

Sky*_*ren 6

我相信你的问题是userData以nil开头.试试这个...

func createSprite() {
    let sprite = SKSpriteNode()
    //init NSMutableDictionary
    sprite.userData = NSMutableDictionary()
    sprite.userData?.setValue("100", forKeyPath: "key")
    frame.addChild(sprite)
}
Run Code Online (Sandbox Code Playgroud)

希望这会有所帮助.