我目前正在使用Swift开发的iOS应用程序,需要 在设备上存储一些用户创建的内容,但似乎找不到一种简单快捷的 方法来在设备上存储/接收用户内容。
有人可以解释如何存储和访问本地存储吗?
想法是在用户执行操作时存储数据,并 在应用程序启动时接收数据。
如果仅存储两个字符串NSUserDefaults,最简单的解决方案是,在Swift 3中,该类已重命名为just UserDefaults。
最好将密钥存储在全局位置,以便您可以在代码的其他位置重用它们。
struct defaultsKeys { static let keyOne = "firstStringKey" static let keyTwo = "secondStringKey" }
// Setting let defaults = UserDefaults.standard defaults.set("Some String Value", forKey: defaultsKeys.keyOne) defaults.set("Another String Value", forKey: defaultsKeys.keyTwo) // Getting let defaults = UserDefaults.standard if let stringOne = defaults.string(forKey: defaultsKeys.keyOne) { print(stringOne) // Some String Value } if let stringTwo = defaults.string(forKey: defaultsKeys.keyTwo) { print(stringTwo) // Another String Value }
// Setting let defaults = NSUserDefaults.standardUserDefaults() defaults.setObject("Some String Value", forKey: defaultsKeys.keyOne) defaults.setObject("Another String Value", forKey: defaultsKeys.keyTwo) // Getting let defaults = NSUserDefaults.standardUserDefaults() if let stringOne = defaults.stringForKey(defaultsKeys.keyOne) { print(stringOne) // Some String Value } if let stringTwo = defaults.stringForKey(defaultsKeys.keyTwo) { print(stringTwo) // Another String Value }
For anything more serious than minor config, flags or base strings you should use some sort of persistent store - A popular option at the moment is Realm but you can also use SQLite or Apples very own CoreData.