ios - 数据持久化

标签 ios swift cocoa-touch data-persistence

加载应用程序时,我想知道我是否已将数据保存到磁盘。如果保存了,我就从磁盘加载,如果没有,我就保存。 例如,我想使用 NSUserDefaults.standardUserDefaults() 保存一个数组(人)

保存方法:

let defaults = NSUserDefaults.standardUserDefaults()

 if let savedPeople = defaults.objectForKey("people") as? NSData 

     people = NSKeyedUnarchiver.unarchiveObjectWithData(savedPeople) as! [Person] 

但是我怎么知道我是否已经在 viewDidLoad() 中保存了数据? ?我不想每次打开应用程序时都保存,而且它也会覆盖我之前修改的数据。

最佳答案

您将这样做:

override func viewDidLoad() {
    super.viewDidLoad()

    if let savedPeople = NSUserDefaults.standardUserDefaults().objectForKey("people") {
        // Use savedPeople based on your need
    } else {
        NSUserDefaults.standardUserDefaults().setObject(myArray, forKey: "people")
    }
}

关于ios - 数据持久化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32791654/

相关文章:

ios - 获取、解析 JSON 对象,然后保存到 Core Data 会产生重复的记录

ios - AVFoundation 输出的图像仅占屏幕的 1/4

ios - swift 3 : replace c style for-loop with float increment

ios - 如何为 LinkedIn 生成访问 token ?

ios - 故障动画 CAAnimation

ios - 从一个 View Controller 选择的多个数组元素到另一个 View Controller

iphone - 如何替换整个操作系统的默认字体

iphone - 如何从 CFString 获取特定属性

ios - 属性字符串下划线不适用于外部字体

ios - 为离线游戏保存玩家详细信息的最佳方式