一尘不染

如何在Swift应用程序中保存本地数据?

swift

我目前正在使用Swift开发的iOS应用程序,需要
在设备上存储一些用户创建的内容,但似乎找不到一种简单快捷的
方法来在设备上存储/接收用户内容。

有人可以解释如何存储和访问本地存储吗?

想法是在用户执行操作时存储数据,并
在应用程序启动时接收数据。


阅读 587

收藏
2020-07-07

共1个答案

一尘不染

如果仅存储两个字符串NSUserDefaults,最简单的解决方案是,在Swift 3中,该类已重命名为just UserDefaults。

最好将密钥存储在全局位置,以便您可以在代码的其他位置重用它们。

struct defaultsKeys {
    static let keyOne = "firstStringKey"
    static let keyTwo = "secondStringKey"
}

Swift 3.0, 4.0 & 5.0

// 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
}

Swift 2.0

// 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.

2020-07-07