Swift:如何存储用户偏好?

Nic*_*ick 17 ios swift

我仍然是iOS开发和swift的新手,我不确定我是否过度思考这个问题.我目前正在开发一个应用程序,在打开时需要用户输入他们的登录凭据.这会变得乏味和令人沮丧,因为每次关闭应用程序并再次打开时,用户都必须登录.如果用户已经登录,是否有一种简单的方法可以让程序记住?

我正在研究CoreData,但每个示例都涉及每次都存储一个新对象,并且需要某种查询来获取信息.我真正需要的是一个bool isLoggedIn和一个用于存储用户ID的int.


编辑:

NSUserDefaults正是我想要的.

Ben*_* Lu 26

您可以使用它NSUserDefaults来保存信息,并在下次应用程序启动时检索它.

https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSUserDefaults_Class/index.html

例如:

NSUserDefaults.standardUserDefaults().setObject("mynameisben", forKey: "username")

let userName = NSUserDefaults.standardUserDefaults().stringForKey("username")
Run Code Online (Sandbox Code Playgroud)

  • 在Swift 3中,`NSUserDefaults`已经被重命名为`UserDefaults`,`standard`是该对象的属性,方法签名是`set(Any?,forKey:string)`和`.object(forKey:string) `,以及其他类型的检索方法. (9认同)

Exc*_*ons 8

使用 NSUserDefaults

Let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject("User", forKey: "userName")
Run Code Online (Sandbox Code Playgroud)

在您的应用程序启动时检查用户名是否存在 AppDelegate.swift

didFinishLaunchingWithOptions
Run Code Online (Sandbox Code Playgroud)

如果存在用户名,请跳过登录页面

检查是否 NSUserDefaults is nil

if (defaults.objectForKey(userName) != nil) { 
// Skip Login 
}
else {// Show login 
} 
Run Code Online (Sandbox Code Playgroud)