有没有什么方法可以在iOS中使用swift来保存用户名和密码,这与Android中的偏好相同?

Anh*_*inh 9 cookies ios swift

我想在我的应用程序上保存数据,我使用DataCore进行保存,但它将数据保存在实体中,并且此实体中的属性可以保存许多不同的值.我需要在Android中为每个属性保存一个数据作为首选项.我怎么能这样做?请帮我.谢谢.这是我的代码:

@IBAction func SaveAll(sender: AnyObject) {
    let username:String = user_name.text!
    let password:String = pass_word.text!

    let appDel: AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate

    let context:NSManagedObjectContext = appDel.managedObjectContext

    let newStu = NSEntityDescription.insertNewObjectForEntityForName("Student", inManagedObjectContext: context) as NSManagedObject
    newStu.setValue(username, forKey: "userName")
    newStu.setValue(password, forKey: "passWord")

    do {
        try context.save()
    } catch {}

}
Run Code Online (Sandbox Code Playgroud)

rik*_*ola 8

你应该UserDefaults这样做.它可以让您在首选项中保存不安全的数据.此外,您可能希望存储某种会话管理密钥,而不是密码,您可以在每次登录一段时间后从服务器收到该密钥.这比直接存储密码更安全一些.

使用UserDefaults,您可以将任何想要的内容保存到手机上持久存储的键值存储中,而且您不必混淆复杂的CoreData内容.

就这样做吧

@IBAction func SaveAll(sender: AnyObject) {
    let username:String = user_name.text!
    let password:String = pass_word.text!

    let defaults = UserDefaults.standard

    defaults.set(username, forKey: "username")
    defaults.set(password, forKey: "password")
}
Run Code Online (Sandbox Code Playgroud)

然后,您可以调用相应的defaults.string(forKey: "username")和密码函数轻松检索它们.


Dee*_*ake 6

尝试 SwiftKeyChainWrapper -链接

这是一个有用的库,用于在设备上保存敏感数据。

用法

向钥匙串添加字符串值:

let saveSuccessful: Bool = KeychainWrapper.standard.set("Some String", forKey: "myKey")
Run Code Online (Sandbox Code Playgroud)

从钥匙串中检索字符串值:

let retrievedString: String? = KeychainWrapper.standard.string(forKey: "myKey")
Run Code Online (Sandbox Code Playgroud)

从钥匙串中删除字符串值:

let removeSuccessful: Bool = KeychainWrapper.standard.removeObject(forKey: "myKey")
Run Code Online (Sandbox Code Playgroud)


Bha*_*n_m 3

将数据存储到内存中NSUserDefaults是一种非常传统的将数据存储到内存的方式,也是一种非常流畅的获取和设置数据的方式。但是,当您考虑数据的安全性时,这NSUserDefaults将无济于事。我的意思NSUserDefaults是不安全和加密,所以它很容易被破解。对于一般数据存储NSUserDefaults肯定会有所帮助,但是当您想要存储用户名和密码等敏感数据时,您必须考虑数据安全性。

\n\n

我总是更喜欢使用Keychain Service API来存储此类数据。钥匙串提供了保存敏感数据的安全替代方案。Apple 提供了Keychain Services API解决此问题的方法,并帮助开发人员构建可以安全处理密码和其他敏感信息的应用程序。

\n\n

您可以在此处找到 Apple 的文档

\n\n

Github 和其他依赖管理站点上有许多包装器作为 Cocoapods 或扩展库存在。以下是我找到的一些参考。

\n\n

1.) SwiftKeychainWrapper

\n\n

2.)锁匠

\n\n

Apple\xe2\x80\x99s 自己的钥匙串包装器被调用,并且在和GenericKeychain中的示例代码中可用。Objective-CSwift

\n\n

我认为这个答案可能与这个问题不准确相关,但这可能会对社区中的一些人有所帮助。

\n