123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- //
- // TSRealmManager.swift
- // AIEmoji
- //
- // Created by 100Years on 2025/2/11.
- //
- import RealmSwift
- let TSRMShared = TSRealmManager.shared
- extension List {
- subscript(safe index: Int) -> Element? {
- return indices.contains(index) ? self[index] : nil
- }
- }
- class TSRealmManager {
- static let shared = TSRealmManager()
- private init() {
- /*设置新的版本号
- 3.6.1 ->4
- 3.6.6 ->7
- 3.6.8 ->8
- **/
-
- let newSchemaVersion: UInt64 = 8
- // 获取默认配置
- var config = Realm.Configuration.defaultConfiguration
- // 设置新版本号
- config.schemaVersion = newSchemaVersion
- // 设置迁移块
- config.migrationBlock = { migration, oldSchemaVersion in
- if oldSchemaVersion < newSchemaVersion {
- // 执行迁移操作
- }
- }
- // 将修改后的配置设置为默认配置
- Realm.Configuration.defaultConfiguration = config
- debugPrint("Realm 数据库已成功打开,版本号: \(newSchemaVersion)")
- }
-
- var realm:Realm {
- return try! Realm()
- }
- // 创建数据
- func create<T: Object>(_ object: T) {
- do {
- try realm.write {
- realm.add(object,update: .modified)
- }
- } catch {
- print("Failed to create object: \(error)")
- }
- }
- // 读取数据
- func read<T: Object>(_ type: T.Type) -> Results<T> {
- return realm.objects(type)
- }
- func update<T: Object>(_ object: T) {
- do {
- try Realm().write {
- try Realm().add(object,update: .modified)
- }
- } catch {
- print("Failed to update object: \(error)")
- }
- }
- // 删除数据
- func delete<T: Object>(_ object: T) {
- do {
-
- try Realm().write {
- try Realm().delete(object)
- }
- } catch {
- print("Failed to delete object: \(error)")
- }
- }
-
-
- func writeThread(wt: ()->Void) {
- do {
- try Realm().write {
- wt()
- }
- } catch {
- print("Failed to writeThread: \(error)")
- }
-
- }
- }
- /*
- // 创建数据
- let person = Person()
- person.name = "John"
- person.age = 30
- RealmManager.shared.create(person)
- // 读取数据
- let allPersons = RealmManager.shared.read(Person.self)
- for person in allPersons {
- print("Name: \(person.name), Age: \(person.age)")
- }
- // 更新数据
- if let firstPerson = allPersons.first {
- RealmManager.shared.update(firstPerson) { person in
- person.age = 31
- }
- }
- // 删除数据
- if let firstPerson = allPersons.first {
- RealmManager.shared.delete(firstPerson)
- }
- */
|