ios - 如何在具有 3 位有效数字十进制值的 iOS 游戏中显示最佳时间?
问题描述
我正在使用以下功能在我的 iOS 游戏中节省最佳时间:-
func format(timeInterval: TimeInterval) -> String {
let interval = Int(timeInterval)
let seconds = interval % 60
let minutes = (interval / 60) % 60
let milliseconds = Int(timeInterval * 1000) % 1000
return String(format: "%02d:%02d.%03d", minutes, seconds, milliseconds)
}
func setBestTime(with time: Int){
let defaults = UserDefaults.standard
let previousBestTime = defaults.integer(forKey: "bestTime")
defaults.set(time > previousBestTime ? time : previousBestTime, forKey: "bestTime")
}
func getBestTime(){
self.bestTimeLabel.text = "\(UserDefaults.standard.integer(forKey: "bestTime"))"
}
func gameOver() {
stopGame()
setBestTime(with: Int(elapsedTime))
}
但是,它以整数显示最佳时间。我希望以 3 位有效数字以十进制显示最佳时间。谁能让我知道我该怎么做?谢谢您的帮助!
解决方案
你没有调用你的format
函数。您只需要在将值显示在标签上之前将其Int
从UserDefault
to传递。format
UserDefaults.double
如果你想存储 aTimeInterval
而不是.你也应该使用Int
。
let defaults = UserDefaults.standard
let bestTimeKey = "bestTime"
func format(timeInterval: TimeInterval) -> String {
let interval = Int(timeInterval)
let seconds = interval % 60
let minutes = (interval / 60) % 60
let milliseconds = Int(timeInterval * 1000) % 1000
return String(format: "%02d:%02d.%03d", minutes, seconds, milliseconds)
}
func setBestTime(with time: TimeInterval){
let previousBestTime = defaults.double(forKey: bestTimeKey)
defaults.set(max(time, previousBestTime), forKey: bestTimeKey)
}
func getBestTime() {
let bestTime = defaults.double(forKey: bestTimeKey)
let formattedBestTime = format(timeInterval: bestTime)
bestTimeLabel.text = formattedBestTime
}
func gameOver() {
stopGame()
setBestTime(with: elapsedTime)
}
推荐阅读
- linux - Centos 6.9 - MISCONF Redis 配置为保存 RDB 快照,但目前无法持久保存在磁盘上
- android - 是否可以过滤蓝牙扫描结果以显示具有特定名称的设备
- c# - C# TCPListener 仅在第一次关闭应用程序后继续侦听
- angular5 - 多个字段的图像上传Angular 5
- apache-spark - 如何使用 foreachPartition (pySpark) 将分区写入 Postgres
- html - 错误类型错误:无法读取属性 ANGULAR6
- html - 使用 BeautifulSoup 从 html 代码中获取文本
- matlab - MATLAB:尝试创建 .mp4 文件时权限被拒绝
- windows - 如何在 Windows 7 上首次使用 Julia?
- json - 如何在 amp-list 中插入 html 内容