获得高分的预期声明错误

时间:2015-08-07 08:07:39

标签: ios swift cocoa-touch uiviewcontroller

我试图制作一个小游戏,现在我希望能够看到游戏的高分。在第一个UIViewController(viewcontroller1),您可以看到得分(UILabel称为myScore),得分正在使用(var score: String!)。该分数已连接到另一个名为recentScore的标签UIViewController(viewcontroller2)使用

override func prepareForSegue(segue: (UIStoryboardSegue!), sender: AnyObject!) {
        if (segue.identifier == "segueTest") {
            var svc = segue!.destinationViewController as! PointsViewController;
       }
}

分数将连接到另一个UIViewController(2)的另一个标签,以查看最终得分。现在我想让人们看到高分也成为可能。目前,在第一个UIViewController

中,代码中包含以下内容
let highscore = ourScore.text;
NSUserDefaults.standardUserDefaults().setObject(highscore, forKey: "Highscore")
NSUserDefaults.standardUserDefaults().synchronize()

而另一个UIViewController则是:

highSchore.text = NSUserDefaults.standardUserDefaults().stringForKey("Highscore")

highScore目前是第二个UIViewController中应该显示高分的标签,我在代码中出错了

highSchore.text = NSUserDefaults.standardUserDefaults().stringForKey("Highscore")

在上面一行中,它表示预期声明

感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

您收到此错误是因为您将代码放在类中的错误位置,因此请将其移至任何函数或viewDidLoad方法。

您只能在类范围内声明,而不能执行要执行的表达式。

它会正常工作。

修改 在您的第二个UIViewController中,只需从NSUserDefaults以这种方式阅读highScore:

let hScore = NSUserDefaults.standardUserDefaults().objectForKey("Highscore") as! String
highSchoreLabel.text = hScore