教程 swift tutorial

本地存储

本地存储是待办事项 App 保障用户数据持久保存的重要环节。

常用存储方式

UserDefaults

适合存储简单数据,使用方便,但不适合大量数据。

swift
func saveTodos(_ todos: [TodoItem]) {
    if let encoded = try? JSONEncoder().encode(todos) {
        UserDefaults.standard.set(encoded, forKey: "todos")
    }
}

func loadTodos() -> [TodoItem] {
    if let data = UserDefaults.standard.data(forKey: "todos"),
       let todos = try? JSONDecoder().decode([TodoItem].self, from: data) {
        return todos
    }
    return []
}

`

文件存储

适合存储结构化数据,使用文件系统保存 JSON 或自定义格式。

swift
func getDocumentsDirectory() -> URL {
    FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
}

func saveToFile(_ todos: [TodoItem]) {
    let url = getDocumentsDirectory().appendingPathComponent("todos.json")
    if let data = try? JSONEncoder().encode(todos) {
        try? data.write(to: url)
    }
}

func loadFromFile() -> [TodoItem] {
    let url = getDocumentsDirectory().appendingPathComponent("todos.json")
    if let data = try? Data(contentsOf: url),
       let todos = try? JSONDecoder().decode([TodoItem].self, from: data) {
        return todos
    }
    return []
}

CoreData(进阶)

对于复杂数据和关系型数据,可以使用 CoreData 提供更强大的持久化支持。

小结

选择合适的本地存储方式,保障数据安全和访问效率,是待办事项 App 开发的重要环节。