在iOS应用中保存数据(数字)?

时间:2018-04-04 00:17:10

标签: ios swift

我正在学习开展测验游戏的应用程序开发。我想在游戏中添加统计信息。例如,自应用程序下载以来的平均分数。如何在应用程序关闭后将分数存储在设备上以便重复使用?

2 个答案:

答案 0 :(得分:0)

你应该看看UserDefault。它基本上是一个字典,一直持续到用户卸载你的应用程序。我喜欢在它周围写一个包装器来获得强大的输入和易于参考:

struct Preferences {
    static func registerDefaults() {
        UserDefaults.standard.register(defaults: [kAverageScore: 0])
    }

    // Define your key as a constant so you don't have to repeat a string literal everywhere
    private static let kAverageScore = "averageScore"
    static var averageScore: Double {
        get { return UserDefaults.standard.double(forKey: kAverageScore) }
        set { UserDefaults.standard.set(newValue, forKey: kAverageScore) }
    }
}

以下是如何使用它:在您第一次在应用中调用它之前,您必须注册默认值。这些是您的应用随附的值。在iOS上,只有用户第一次启动您的应用才真正重要。在OS X上,每次应用启动时都会执行此操作,因为用户可以从~/Library/Application Support删除应用的首选项。

// You usually do this in viewDidLoad
Preferences.registerDefaults()

从那时起,获取和设置属性很简单:

let averageScore = Preferences.averageScore
Preferences.averageScore = 5.5

答案 1 :(得分:-2)

你应该看看UserDefaults 实施例

let defaults = UserDefaults.standard
defaults.set(25, forKey: "Age")
defaults.set(true, forKey: "UseTouchID")
defaults.set(Double.pi, forKey: "Pi")

要读取值

let age = defaults.integer(forKey: "Age")
let useTouchID = defaults.bool(forKey: "UseTouchID")
let pi = defaults.double(forKey: "Pi")

UserDefaults