0
struct UserData {
     var userName: String? = nil
     var password: String? = nil
     var phone: String? = nil
     var email: String? = nil
     var image: UIImage? = nil
     var categoryName: String? = nil
}

我需要将这些数据保存并检索到钥匙串中。如何以正确的方式保存和检索,并且当我检索数据时,我需要使用类别名称过滤这些数据

4

1 回答 1

0

您可以通过实现自定义编码器和解码器使 UserData 符合 Codable。

默认情况下,除图像之外的所有字段都是可编码的。您可以通过将图像的数据导出为 base64String 来将图像存储为字符串。

然后您可以使用 JSONEncoder 将结构转换为数据。并使用它的 base64Encoded 表示来存储在钥匙串中。

但是这种方法有一个严重的问题:keychain 不适合存储大量数据。它旨在用于存储密码和东西。

所以我会做一些管理 UserData 对象的服务。它将密码等敏感数据存储在钥匙串中,并将其他不那么敏感的字段存储为磁盘上的文件。

于 2021-08-23T19:05:36.823 回答