删除应用程序后,不是从iPhone中删除了KeychainWrapper项吗? (快速4.2)

时间:2019-03-20 11:25:43

标签: ios swift keychain

我已经创建了一个应用程序来很好地解释我的问题。 页面(ViewController)中有一个按钮

这是ViewController.swift文件

import UIKit
import SwiftKeychainWrapper

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        let resultOfTheMethod = checkKeychainWrapperExistOrNot()
        print("checkKeychainWrapperExistOrNot method result: \(resultOfTheMethod)")
    }

    @IBAction func btnPressed(_ sender: UIButton) {
        saveSomeDummyDataInToTheKeychainWrapper()
    }

    func saveSomeDummyDataInToTheKeychainWrapper()
    {
        KeychainWrapper.standard.set("TEST_123", forKey: "someKey4KeychainWrapper")
    }

    func checkKeychainWrapperExistOrNot () -> Bool {
        if let _ = KeychainWrapper.standard.string(forKey: "someKey4KeychainWrapper")
        {
            return true
        }
        return false
    }
}

让我解释一下我的工作顺序: 我已将iPhone插入Mac。然后,我第一次使用iPhone来运行该应用程序。我从viewDidLoad方法获得了此输出:

checkKeychainWrapperExistOrNot method result: false

然后我单击了按钮。之后,我关闭了应用程序并再次打开它。我得到以下输出:

checkKeychainWrapperExistOrNot method result: true

然后按顺序完成以下步骤: 从我的iPhone中删除了该应用, 单击:产品>“清洁生成文件夹”, 然后重新运行该应用程序。我得到以下输出:

checkKeychainWrapperExistOrNot method result: true

结果是:KeyChainWrapper项未删除。我想确认一下,因为它有点奇怪:我已经完成了此应用程序:已将其从手机中删除。但是我的iPhone中仍然有一些与此删除的应用程序相关的文件。

因此,我的第一个问题是:当我们从iPhone中删除应用程序时,KeyChainWrapper项不会被删除吗?这些什么时候删除?

第二个问题:如何删除所有KeychainWrapper物品?假设我有很多像这样的KeychainWrapper物品:

KeychainWrapper.standard.set("TEST_123", forKey: "someKey4KeychainWrapper")
KeychainWrapper.standard.set("TEST_123", forKey: "someKey4KeychainWrapper2")
KeychainWrapper.standard.set("TEST_123", forKey: "someKey4KeychainWrapper3")

如何删除所有这些?

0 个答案:

没有答案