从UserDefaults获取数据非常简单。以下方法用作UserDefaults中的getter方法。
SN | Method | Description |
---|---|---|
1 | func object(forKey: String) -> Any? | 它返回与指定键关联的对象。 |
2 | func url(forKey: String) -> URL? | 它返回与指定键关联的URL。 |
3 | func array(forKey: String) -> [Any]? | 它返回与指定键关联的数组。 |
4 | func dictionary(forKey: String) -> [String : Any]? | 它返回与指定键关联的字典。 |
5 | func string(forKey: String) -> String? | 它返回与指定键关联的字符串。 |
6 | func stringArray(forKey: String) -> [String]? | 它返回与指定键关联的字符串数组。 |
7 | func data(forKey: String) -> Data? | 它返回与指定键关联的二进制数据。 |
8 | func bool(forKey: String) -> Bool | 它返回与指定键关联的布尔值。 |
9 | func integer(forKey: String) -> Int | 它返回与指定键关联的整数值。 |
10 | func float(forKey: String) -> Float | 它返回与指定键关联的浮点值。 |
11 | func double(forKey: String) -> Double | 它返回与指定键关联的双精度值。 |
12 | func dictionaryRepresentation() -> [String : Any] | 它返回UserDefualts的字典表示形式。 |
由于UserDefaults使用数据类型来检索与键关联的存储值。但是指定键的值可能不存在。因此在从UserDefaults检索值时,无涯教程需要使用可选绑定。
if let token = UserDefaults.standard.string(forKey: "userToken"){ debugPrint(token) }
在实时项目中,无涯教程在单例Shared Preference类中使用UserDefaults。让无涯教程考虑以下示例,在该示例中,无涯教程创建一个显式的SharedPreferenceManager类,并将所有与用户默认值相关的代码放在此处。
SharedPreferenceManager.swift
import Foundation class SharedPreferenceManager: NSObject { class var sharedIntance : SharedPreferenceManager { struct Static { static let instance = SharedPreferenceManager() } return Static.instance } let sharedPreferenc = UserDefaults.standard //MARK:- clear all Data. func clearAllPreference() { if let bundle = Bundle.main.bundleIdentifier { sharedPreference.removePersistentDomain(forName: bundle) } } //MARK:- setter methods. func saveUserToken (_ userToken : String) { sharedPreference.set(userToken, forKey: "userToken") } //MARK:- getter Methods. func getUserToken() -> String? { return sharedPreference.value(forKey: "userToken") as? String }
ViewController.swift
import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() //Do any additional setup after loading the view. let token = "ABCDEFGD!@#$456MK" SharedPreferenceManager.sharedIntance.saveUserToken(token) if let token = SharedPreferenceManager.sharedIntance.getUserToken(){ debugPrint(token) } } }
SharedPreferenceManager类可以在实时项目中使用,无涯教程可以在其中放置所有setter和getter方法来保存和检索UserDefaults中的值。
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)