2016-09-28 5 views
0

Ich mache ein Spiel in Swift, ich habe eine Variable namens score, ich inkrementiere und drucke diese Variable in meinem onTick()-Methode, und es funktioniert gut. Wenn ich jedoch versuche, auf diese Variable zuzugreifen, um nach dem Tod des Spielers das Endergebnis anzuzeigen, bekomme ich 0 oder was auch immer der ursprüngliche Wert war.Swift Variable geben falschen Wert

Initialisierung:

class ViewController: UIViewController { 
var score = 0; 

Incrementieren:

scoreCounter.text = String(self.score); 
self.score += 1; 

Der Versuch, es zu endgame anzuzeigen:

print("SCORE: \(score)"); 
if (score > topScore) { 
    endScore.textColor = UIColor.greenColor(); 
    endScore.text = "NEW HIGHSCORE! Score: " + String(score) + " HighScore: " + String(topScore); 
} else { 
    endScore.text = "Score: " + String(score) + " HighScore: " + String(topScore); 
} 

Einsicht ist gefragt! :)

+3

Wenn Sie eine globale Variable mit dem Namen haben ' punkten, dann erzeugt das Erstellen einer Eigenschaft in Ihrem View-Controller mit demselben Namen, dass Ihr View-Controller nur seine eigene lokale Eigenschaft bearbeitet und Ihre globale Variable nicht ändert. – dan

+2

Post mehr Code. – random

+0

@dan Tut mir leid, ich merke jetzt, dass es keine globale Variable ist, mein CS-Lehrer hat es mir gesagt und ich war verwirrt, bis ich merkte, dass er falsch lag. – Zacx

Antwort

0

Ich löste dies durch die Variable statisch zu machen, ich weiß nicht, ob dies die richtige Lösung ist, aber es funktioniert für mich, danken alle für ihre help.`

Verwandte Themen