Swift 是一種快速、安全的程式語言,它可以讓開發者快速開發出功能強大的應用程式。在開發應用程式時,有時候需要將資料儲存在離線的設備上,而 Swift 提供了多種離線資料儲存方法,讓開發者可以快速開發出功能強大的應用程式。
Swift 離線資料儲存方法
Swift 提供了多種離線資料儲存方法,包括:UserDefaults、Core Data、SQLite、Realm等。
UserDefaults
UserDefaults 是 Swift 中最簡單的離線資料儲存方法,它可以讓開發者將資料儲存在設備的檔案系統中,並且可以在應用程式重新啟動時輕鬆取出資料。
// 儲存資料
UserDefaults.standard.set("Hello World", forKey: "greeting")
// 取出資料
let greeting = UserDefaults.standard.string(forKey: "greeting")
Core Data
Core Data 是一種資料庫管理系統,它可以讓開發者將資料儲存在設備的檔案系統中,並且可以在應用程式重新啟動時輕鬆取出資料。
// 建立一個新的 Core Data 模型
let model = NSManagedObjectModel()
// 建立一個新的 Core Data 持久儲存區
let store = NSPersistentStoreCoordinator(managedObjectModel: model)
// 建立一個新的 Core Data 資料庫
let context = NSManagedObjectContext(persistentStoreCoordinator: store)
// 儲存資料
let entity = NSEntityDescription.insertNewObject(forEntityName: "Entity", into: context)
entity.setValue("Hello World", forKey: "greeting")
// 取出資料
let fetchRequest = NSFetchRequest(entityName: "Entity")
let results = try context.fetch(fetchRequest)
let entity = results.first as! NSManagedObject
let greeting = entity.value(forKey: "greeting")
SQLite
SQLite 是一種開源的資料庫管理系統,它可以讓開發者將資料儲存在設備的檔案系統中,並且可以在應用程式重新啟動時輕鬆取出資料。
// 建立一個新的 SQLite 資料庫
let db = try Connection("path/to/database.sqlite3")
// 建立一個新的資料表
try db.run(table.create { t in
t.column("id", primaryKey: true)
t.column("greeting", .text)
})
// 儲存資料
try db.run(table.insert(or: .replace, "greeting" <- "Hello World"))
// 取出資料
let rows = try db.prepare(table.select("greeting"))
for row in rows {
let greeting = row[0]
}
Realm
Realm 是一種開源的資料庫管理系統,它可以讓開發者將資料儲存在設備的檔案系統中,並且可以在應用程式重新啟動時輕鬆取出資料。
// 建立一個新的 Realm 資料庫
let realm = try! Realm()
// 建立一個新的資料表
class Entity: Object {
@objc dynamic var greeting = ""
}
// 儲存資料
let entity = Entity()
entity.greeting = "Hello World"
try! realm.write {
realm.add(entity)
}
// 取出資料
let results = realm.objects(Entity.self)
for entity in results {
let greeting = entity.greeting
}
Swift 提供了多種離線資料儲存方法,開發者可以根據自己的需求選擇合適的方法來儲存資料。
推薦閱讀文章
推薦閱讀文章
Swift Data Persistence Tutorial: Getting Started
Swift Data Persistence: Saving Your App Data Securely
How to save user settings using UserDefaults
How to read and write from the filesystem using FileManager
How to use Codable for JSON encoding and decoding