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<NSFetchRequestResult>(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 提供了多種離線資料儲存方法,開發者可以根據自己的需求選擇合適的方法來儲存資料。
推薦閱讀文章
推薦閱讀文章
<a href="https://www.raywenderlich.com/567-swift-data-persistence-tutorial-getting-started">Swift Data Persistence Tutorial: Getting Started</a><br>
<a href="https://www.appcoda.com/swift-data-persistence/">Swift Data Persistence: Saving Your App Data Securely</a><br>
<a href="https://www.hackingwithswift.com/example-code/system/how-to-save-user-settings-using-userdefaults">How to save user settings using UserDefaults</a><br>
<a href="https://www.hackingwithswift.com/example-code/system/how-to-read-and-write-from-the-filesystem-using-filemanager">How to read and write from the filesystem using FileManager</a><br>
<a href="https://www.hackingwithswift.com/example-code/system/how-to-use-codable-for-json-encoding-and-decoding">How to use Codable for JSON encoding and decoding</a