2016-03-31 25 views
2

Ich versuche, einen Wert auf einem Sprite Benutzerdaten gespeichert und in der Lage sein, es zu lesen.Speichern und Lesen von Informationen aus einem Sprites UserData

Heres, was ich habe, aus irgendeinem Grund wird der Wert nie gespeichert und bleibt wie Null.

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

Antwort

4

Ich glaube, Ihr Problem ist, dass die UserData als Null beginnt. Versuchen Sie das ...

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

Hoffentlich hilft das.