保存和读取Sprites UserData中的信息

时间:2016-03-31 03:14:42

标签: swift sprite-kit user-data

我试图将一个值保存到精灵的用户数据中并能够将其读取。

继承我拥有的东西,由于某种原因,价值永远不会被保存并保持为零。

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 :(")
    }
}

1 个答案:

答案 0 :(得分:6)

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

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

希望这有帮助。