我对swift编码很新,所以我几乎不知道任何语法。 我在视图控制器中定义一个变量并为其分配一个随机的4位数值。 我想在安装/更新应用程序时仅分配此值一次,而不是每次用户打开应用程序时分配此值。 如果你们中的任何人知道这方面的解决方案,请帮帮我。以下是我目前的代码
import UIKit
let stranger = String(arc4random_uniform(10000))
class ViewController: UIViewController {...}
答案 0 :(得分:3)
您应该使用UserDefaults
来保存随机值。当你第一次打开app时,你会在 stranger 中获得一些随机值。使用特定的键在UserDefaults
中添加这些值,您可以使用在UserDefault
中设置的键来访问值。
<强>实施例强>
您在陌生人中获得随机值 1234 ,那么您应该首先检查您是否已设置该值?
if UserDefaults.standard.object(forKey: "keyRandom") == nil { // If value already set then you do not need to reset
UserDefaults.standard.set(stranger, forKey: "keyRandom")
}
如果你想访问价值,可以通过
获得print("\(UserDefaults.standard.object(forKey: "keyRandom") ?? "not Found")")
答案 1 :(得分:0)
如果要在启动之间保留,则需要将数据存储在持久性数据存储中。 UserDefaults
是一个简单的解决方案,您可以使用registerDefaults
方法对其进行播种。
注册您的默认属性。在AppDelegate.didFinishingLaunching
可能是一个好地方
UserDefaults.standard.register(defaults: [
"MyKey" : String(arc4random_uniform(10000))
])
拉出值:
let stranger = UserDefaults.standard.string(forKey: "MyKey")
如果您不想在应用启动时注册默认值,或者需要更改默认设置,那么您也可以在首次需要时设置该属性,使用if let
检查是否可以已经存在,如果没有,请设置它。
func getStranger() -> String {
if let v = UserDefaults.standard.string(forKey: "MyKey") {
return v
} else {
let rand = String(arc4random_uniform(10000))
UserDefaults.standard.set(rand, forKey:"MyKey")
return rand
}
}
注意:代码写在SO答案框中,未经过测试,可能包含语法错误。仅限演示