我是 Swift 新手,尝试自动化我的应用程序来创建随机 PIN,然后在应用程序重新启动后输入它。
因此该函数成功生成随机 PIN,但在应用程序重新启动后 - 看起来它再次生成随机 PIN,因此 PIN 彼此不匹配。如何存储生成的 PIN 数组并再次使用?
private lazy var randomPinButtons = [
app.otherElements["pinEnter_digit0"],
app.otherElements["pinEnter_digit1"],
app.otherElements["pinEnter_digit2"],
app.otherElements["pinEnter_digit3"],
app.otherElements["pinEnter_digit4"],
app.otherElements["pinEnter_digit5"],
app.otherElements["pinEnter_digit6"],
app.otherElements["pinEnter_digit7"],
app.otherElements["pinEnter_digit8"],
app.otherElements["pinEnter_digit9"]
]
private lazy var getRandomPin = (randomPinButtons.shuffled().prefix(4))
func enterPIN() -> Self {
for i in getRandomPin {
i.tap()
}
return self
}
因此该函数成功生成随机 PIN,但在应用程序重新启动后 - 看起来它再次生成随机 PIN,因此 PIN 彼此不匹配。如何存储生成的 PIN 数组并再次使用?
要存储 PIN,您需要使用 iOS API 将值存储在应用程序存储中。有几个选项可以实现这一点——“UserDefaults”或您应用程序的钥匙串。
以下是如何在
UserDefaults
中存储 PIN 码的示例:
import Foundation
let pin = getRandomPIN()
UserDefaults.standard.set(pin, forKey: "pin")
您可以通过以下方式检索 PIN:
import Foundation
let pin = UserDefaults.standard.string(forKey: "pin")
但是,由于您要存储 PIN,因此应考虑使用
Keychain
来存储该值。Keychain
是针对 PIN 或密码等敏感数据的安全存储选项。以下是如何将 PIN 码存储在 Keychain
中的示例:
import Foundation
let pin = enterPin()
let keychain = Keychain(service: "com.example.yourappkeychain")
keychain["pin"] = pin
您可以使用以下代码检索 PIN:
import Foundation
let keychain = Keychain(service: "com.example.app")
let pin = keychain["pin"]