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

Could someone explain how to store and access local storage?

其 idea 是在用户执行操作时存储数据,并在应用程序启动时接收数据.

推荐答案

存储几个字符串或常见类型的最简单解决方案是UserDefaults.

UserDefaults类为访问浮点、双精度、整数、布尔值和URL等常见类型提供了方便的方法.

UserDefaults允许我们根据自己 Select 的键存储对象,最好将这些键存储在可访问的地方,这样我们就可以重用它们.

Keys

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
}

Swift 2.0

在SWIFT 2.0中,UserDefaults称为NSUserDefaults,setter和getter的命名略有不同:

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
}

对于任何比次要配置更严重的情况,您应该考虑使用更健壮的持久存储:

Ios相关问答推荐

' NSRunLoop::runUntilDate '是否会阻止主线程?

Flutter应用程序无法使用IOS/Swift的蓝牙核心库发现某些外围设备

在Swift5中,将某些属性值从一个类复制到另一个类实例

在滚动视图中固定页眉,但在页眉上方嵌入元素

带菜单的选取器不适用于Int32,但适用于Int

如何在@AppStorage中存储字体?

为什么这个 SwiftUI 状态在作为非绑定参数传递时没有更新?

SwiftUI 动画:为什么容器视图在移动?我很难理解这种行为

AppCenter 错误:/usr/bin/xcodebuild 失败,返回码:65

Text() 正在添加额外的前导尾随填充 SwiftUI

无法为 Flutter 项目构建 ipa [CocoaPods 找不到 pod "GoogleAppMeasurement" 的兼容版本:]

UIViewControllerRepresentable 在 Xcode 14 iOS 16 上崩溃

Select UITableViewCell 时 UIView backgroundColor 消失

Xcode 故事板:内部错误.请提交错误

如何在 iOS 的 xib 中设置十六进制 colored颜色 代码

Xcode 11 向后兼容性:UIWindowScene 仅在 iOS 13 或更高版本中可用

从 WKWebView 获取所有 cookie

如何动态计算 UILabel 高度?

Select 器touchesBegan:withEvent:的覆盖方法具有不兼容的类型(NSSet,UIEvent)->()

文件是为存档而构建的,它不是被链接的体系 struct (i386)