2016-03-31 10 views
2

スプライトのユーザーデータに値を保存しようとしています。スプライトのユーザーデータからの情報の保存と読み取り

私が何を持っているのか何らかの理由で値が決して保存されず、ゼロとしてとどまります。

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

答えて

4

あなたの問題は、userDataがnilとして開始されることです。試してみてください...

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

うまくいけば助けてください。

関連する問題