2016-10-06 1 views
3

ich die Userdata meiner SKSpriteNode in der Szene-Editor festgelegt:erhalten Userdata von SKSpriteNode die Szene-Editor

enter image description here

Dann habe ich versucht, es zu erhalten, mit:

let sprite:SKSpriteNode = self.childNode(withName: "sprite") as? SKSpriteNode 
let numero:Int = sprite.userdata?.valueForKey("numero") as! Int 

Aber ich nil value: "fataler Fehler: unerwartet gefunden nil beim Entpacken eines optionalen Wertes"

Ich habe auch versucht, die userData mit zu initialisieren:

sprite.userData? = NSMutableDictionary() 

Aber gleiche Ergebnis ...

+1

haben Sie den Szeneneditor gespeichert? – Knight0fDragon

+0

mit dem @ Knight0fDragon bedeutet zu sagen, dass es eine recht gut bekannte Reihe von Anomalien in den Szeneneditoren in Xcode gibt - dass sie nicht automatisch speichern, wie alles andere in Xcode. Speichern Sie die Szene, während Sie im Szeneneditor (für einige Eigenschaften) sie so in den Speicher auslagern, dass sie wie gewünscht funktionieren ... manchmal. – Confused

Antwort

1

Wahrscheinlich auch Ihr Sprite ist gleich Null:

versuchen Ihr Sprite mit dem optionalen Bindung suchen (wenn lassen) und die "//" vor Sprite.

if let sprite = self.childNode(withName: "//sprite") as? SKSpriteNode { 
     let numero:Int = sprite.userdata?.valueForKey("numero") as! Int 
} else { 
    print("I cannot find sprite..") 
} 

Es führt eine rekursive Suche von seiner aktuellen Position aus. Überprüfen Sie die API-Referenz here.

Verwandte Themen