I'm trying to make a little game, now I want to make it possible to see the high score of the game. At the first UIViewController
(viewcontroller1) you can see the score (UILabel
called ourScore) and the score is working with (var score: String!
). The score has been connected to a label called recentScore at the other UIViewController
(viewcontroller2) With the use of
override func prepareForSegue(segue: (UIStoryboardSegue!), sender: AnyObject!) {
if (segue.identifier == "segueTest") {
var svc = segue!.destinationViewController as! PointsViewController;
}
}
the score will connect to the other label at the other UIViewController
(2) to see the final score. Now I wanted to make it possible to see also the high score. Currently the high score is with in the code the following on the first UIViewController
let highscore = ourScore.text;
NSUserDefaults.standardUserDefaults().setObject(highscore, forKey: "Highscore")
NSUserDefaults.standardUserDefaults().synchronize()
and at the other UIViewController
it is:
highSchore.text = NSUserDefaults.standardUserDefaults().stringForKey("Highscore")
highScore is currently the label in the second UIViewController
where the high score should be showing, I got an error at the code
highSchore.text = NSUserDefaults.standardUserDefaults().stringForKey("Highscore")
In the above line, it says Expected declaration.
Thanks for the help!
You are getting this error because you have the code in the wrong place in the class so move it to any function or in
viewDidLoad
method.You can have only declarations in class scope, not expressions to be executed.
And it will work fine.
EDIT: In your second
UIViewController
just read highScore fromNSUserDefaults
this way:To be clear for rookies like me, you can get the expected declaration error when you try to use a variable in your ViewController not in a function.
For example this code will give you the expected declaration error.
While this code will not give you the error.