Swift - 在进一步操作中使用随机 PIN 码

问题描述 投票:0回答:1

我是 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 数组并再次使用?

swift xcuitest
1个回答
0
投票

要存储 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"]
© www.soinside.com 2019 - 2024. All rights reserved.