我目前正在使用Swift开发的iOS应用程序,需要在设备上存储一些用户创建的内容,但似乎找不到一种简单快捷的方法来在设备上存储/接收用户内容。
有人可以解释如何存储和访问本地存储吗?
想法是在用户执行操作时存储数据,并在应用程序启动时接收数据。
如果仅存储两个字符串NSUserDefaults,最简单的解决方案是,在Swift 3中,该类已重命名为just UserDefaults。
NSUserDefaults
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 }
对于比次要配置,标志或基本字符串更严重的事情,您应该使用某种持久存储- 目前流行的选择是Realm,但您也可以使用SQLite或Apple自己的CoreData。