主题
本地存储
本地存储是待办事项 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 开发的重要环节。