- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在制作一个测验应用程序。所以基本上我有分数和高分,我想在主视图 Controller 上显示和存储结果。
我可以显示结果但不能保存它们。请帮忙!我还希望如果我在问题 2 上退出我的应用程序,它将从那里重新启动而不是 isInitialViewController。非常感谢对这两个主题的任何帮助。
下面是加载乐谱的主要配置文件的代码,但是一旦您退出应用程序并重新加载它,数字就会消失:
import UIKit
import Parse
import ParseUI
import CoreData
import Foundation
class UserProfileViewController: UIViewController {
@IBOutlet var scoreLabelUser: UILabel!
var scoringString = String()
@IBOutlet var HighScoreLabelUser: UILabel!
var highscoreString = String()
@IBOutlet var HighScoreLabel: UILabel!
var HighscoreInt = 0
override func viewDidLoad() {
super.viewDidLoad()
var highScoreDefault2 = NSUserDefaults.standardUserDefaults()
if (highScoreDefault2.valueForKey("EASYHIGHSCORE") != nil)
{
HighscoreInt = highScoreDefault2.valueForKey("EASYHIGHSCORE") as! NSInteger
//highscoreString = highScoreDefault2.valueForKey("EASYHIGHSCORE") as! String
HighScoreLabel.text = NSString(format: "%i", HighscoreInt) as String
}
assignScores()
}
func assignScores() {
scoreLabelUser.text = NSString(format: "%@", scoringString) as String
HighScoreLabelUser.text = NSString(format: "%@", highscoreString) as String
HighScoreLabel.text = "\(highscoreString)"
var highScoreDefault2 = NSUserDefaults.standardUserDefaults()
highScoreDefault2.setValue(HighscoreInt, forKey: "EASYHIGHSCORE")
}
}
我有第二个 ViewController,它实际上有测验并正在计算分数和高分。
//
// EasyQuizViewController.swift
// Quiz
import UIKit
import CoreData
import AVFoundation
class EasyQuizViewController: UIViewController {
@IBOutlet var sequence: UILabel!
@IBOutlet var questionLabel: UILabel!
@IBOutlet var Button1: UIButton!
@IBOutlet var Button2: UIButton!
@IBOutlet var Button3: UIButton!
@IBOutlet var Button4: UIButton!
@IBOutlet var scoreLabel: UILabel!
@IBOutlet var highscoreLabel: UILabel!
var CorrectAnswer = String()
var questionNumber = 0
var score = 0
var highScore = 0
override func viewDidLoad() {
super.viewDidLoad()
var highScoreDefault = NSUserDefaults.standardUserDefaults()
if (highScoreDefault.valueForKey("HIGHSCORE") != nil)
{
highScore = highScoreDefault.valueForKey("HIGHSCORE") as! NSInteger!
highscoreLabel.text = NSString(format: "%i", highScore) as String
}
generateNewNumber()
// Do any additional setup after loading the view.
}
func generateNewNumber() {
questionNumber += 1
switch(questionNumber) {
case 1:
sequence.text = "\(questionNumber)/50"
questionLabel.text = "Which is the country with the most people?"
Button1.setTitle("United States of America", forState: UIControlState.Normal)
Button2.setTitle("South Africa", forState: UIControlState.Normal)
Button3.setTitle("China", forState: UIControlState.Normal)
Button4.setTitle("India", forState: UIControlState.Normal)
CorrectAnswer = "3"
break
case 2:
sequence.text = "\(questionNumber)/50"
questionLabel.text = "Which is the planet closest to the Sun?"
Button1.setTitle("Venus", forState: UIControlState.Normal)
Button2.setTitle("Jupiter", forState: UIControlState.Normal)
Button3.setTitle("Earth", forState: UIControlState.Normal)
Button4.setTitle("Mercury", forState: UIControlState.Normal)
CorrectAnswer = "4"
break
default:
var alert = UIAlertView(title: "Finished", message: "Your quiz has been completed. Click Okay to view scores.", delegate: self, cancelButtonTitle: "Ok")
alert.show()
//println("\(score)")
//println("\(highScore)")
scoreLabel.text = NSString(format: "%i", score) as String
if (score > highScore) {
highScore = score
highscoreLabel.text = NSString(format: "%i", highScore) as String
}
var highScoreDefault = NSUserDefaults.standardUserDefaults()
highScoreDefault.setValue(highScore, forKey: "HIGHSCORE")
self.profileScreen()
break
}
}
@IBAction func Button1Action(sender: AnyObject) {
if (CorrectAnswer == "1")
{
score += 1
generateNewNumber()
}
else {
generateNewNumber()
}
}
@IBAction func Button2Action(sender: AnyObject) {
if (CorrectAnswer == "2")
{
score += 1
generateNewNumber()
}
else {
generateNewNumber()
}
}
@IBAction func Button3Action(sender: AnyObject) {
if (CorrectAnswer == "3")
{
score += 1
generateNewNumber()
}
else {
generateNewNumber()
}
}
@IBAction func Button4Action(sender: AnyObject) {
if (CorrectAnswer == "4")
{
score += 1
generateNewNumber()
}
else {
generateNewNumber()
}
}
@IBAction func BackBtn(sender: AnyObject) {
self.performSegueWithIdentifier("backToProfile", sender: self)
}
func profileScreen() {
self.performSegueWithIdentifier("backToProfile", sender: self)
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
var destinationViewController : UserProfileViewController = segue.destinationViewController as! UserProfileViewController
//println("\(scoreLabel)")
//println("\(highscoreLabel)")
destinationViewController.scoringString = NSString(format: "%i", score) as String
destinationViewController.highscoreString = NSString(format: "%i", highScore) as String
//destinationViewController.HighscoreInt = NSString(format: "%i", highScore) as String
//destinationViewController.HighscoreInt = (highScore) as NSInteger
}
}
最佳答案
当用户退出您的应用时,您应该存储您的 NSUserDefaults:
func applicationDidEnterBackground(application: UIApplication) {
let defaults = NSUserDefaults.standardUserDefaults()
defaults.synchronize()
}
关于ios - xcode swift : NSUserDefaults : save the highscore if quit app and restart it where left off,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31200640/
我并不是试图让它保存服务器端或任何东西,而只是一次性保存,所以如果刷新页面,数据就会消失。我在这里和谷歌上搜索过,找不到任何与我所说的完全相关的东西,但也许我正在寻找错误的东西。 Past
我有一个带有分数和高分系统的应用程序。我可以在游戏场景中显示最高分,但在菜单场景中显示为 0。在游戏场景中,我创建了变量 var highScore = 0 然后我说 if (score > high
我有一个高分(最高分)系统,它根据玩家的经验来计算位置。但现在我需要在网络上的其他地方使用玩家的排名,也许网络上的更多地方也像个人一样得分高,就会显示玩家该技能的排名。 因此,仅仅循环并使用像rank
我见过几个类似的问题,但我从未真正得到这些答案,例如导入 OrderedDict 或这个 genexp = ((name, dictScore[name]) for name in sorted(di
我用表格实现了一个高分列表,但是这很麻烦,因为所有 TextView 都有自己的 id 等。是否有更适合此目的的小部件/控件?我想显示两列。两列都应该有它们的列标题。 你能给我一些关于如何使它真正成为
嗨,世界各地的程序员, 我正在开发一个项目,用户可以在其中做某些事情并获得积分。为了简化这个问题,假设我们有 2 个表user 和 points。 -- table user -- tab
下面是我使用的代码。它的工作直到 3 次点击才有效,后续点击不会像游戏中的正常得分那样“连续”添加。另一个问题是我不知道时间到后如何保存分数。我正在考虑使用数据(保存的分数)来显示每场比赛结束时的最佳
所以我试图在谷歌应用程序引擎java中为我的游戏实现全局高分。我想要检索的信息有两个: 用户放置了哪个位置? 他打破了百分之多少的记录? 如果我解决了第一个问题,并找到一种方法来计算数据库中的总行数,
我有一个 spritekit 游戏,我在其中获得了高分。它使用 NSUser Default。但是我得到了高分2,然后我完全关闭了应用程序,然后打开它显示我的高分2,然后得到一个作为分数。它仍然是2。
这可能是一个非常简单的解决方案和问题,但我一直在为此绞尽脑汁。每次我统一测试这个,如果我得到的分数低于高分,高分无论如何都会改变。这是我的代码。如果您需要更多,请告诉我。 脚本 1: using Un
我有一个包含 2 列的表格,名称和分数。我说它有 10 个带有分数的名称,我想替换分数最低的行如果新分数大于或等于表中的最低分数,则使用新名称和分数。 我设法首先获得最高值的 ResultSet,但我
那里高 在 Android 上玩一个最小的游戏时,我在 sql 查询方面迷失了方向。 我正在尝试获得前 100 名的排名列表,它几乎有效但不太有效 我正在使用这个查询 $sql = "SELECT *
在 Google 上四处寻找都没有成功之后,我觉得在这里发帖可能是个好主意,因为我已经使用这个网站回答了之前的问题。 无论如何,我目前正在使用 HTML5 canvas 游戏; PHP、MYSQL、H
我正在制作一个测验应用程序。所以基本上我有分数和高分,我想在主视图 Controller 上显示和存储结果。 我可以显示结果但不能保存它们。请帮忙!我还希望如果我在问题 2 上退出我的应用程序,它将从
我正在构建一个快速游戏并且需要设置高分,我一直在努力弄清楚如何去做。所以请你告诉我如何搜索这个库,看看是否有已经保存的高分,然后将它与用户的分数进行比较。我试过解决这个问题,但行不通。请帮助并尽可能清
我是一名优秀的程序员,十分优秀!