在不同的线程中访问领域和过滤器结果
Accessing realm and filter results in different threads
大家好!
我 运行 遇到了一个大问题。我正在尝试在主线程中访问领域数据,但也因为我需要对数据进行大量同步操作,例如更新、插入等,所以我决定搜索是否有可能异步执行所有这些操作,但是我尝试实施的每种方法都遇到了不同的错误。
我正在按如下方式创建领域数据库:
realm = try Realm(configuration: Realm.Configuration(
fileURL: fileURL,
encryptionKey: nil,
schemaVersion: schemaVersion,
objectTypes: objectTypes))
访问数据如下:
guard let realm = realm else {
return nil
}
let results = realm.objects(SPUserModel.self)
return Array(results)
在主线程中执行所有这些更新插入操作会将我的内存增加到 1GB,这很糟糕。使它们异步可能是一个解决方案,但有不同的线程,这是一个问题。
如果你能帮助我,我会很高兴。
extension Realm {
class func realmInstance() -> Realm? {
let realm = try Realm(configuration: Realm.Configuration(
fileURL: fileURL,
encryptionKey: nil,
schemaVersion: schemaVersion,
objectTypes: objectTypes))
return realm
}
访问:
DispatchQueue(label: "background").async {
Realm.realmInstance()?.objects(SPUserModel.self)
}
大家好!
我 运行 遇到了一个大问题。我正在尝试在主线程中访问领域数据,但也因为我需要对数据进行大量同步操作,例如更新、插入等,所以我决定搜索是否有可能异步执行所有这些操作,但是我尝试实施的每种方法都遇到了不同的错误。
我正在按如下方式创建领域数据库:
realm = try Realm(configuration: Realm.Configuration(
fileURL: fileURL,
encryptionKey: nil,
schemaVersion: schemaVersion,
objectTypes: objectTypes))
访问数据如下:
guard let realm = realm else {
return nil
}
let results = realm.objects(SPUserModel.self)
return Array(results)
在主线程中执行所有这些更新插入操作会将我的内存增加到 1GB,这很糟糕。使它们异步可能是一个解决方案,但有不同的线程,这是一个问题。
如果你能帮助我,我会很高兴。
extension Realm {
class func realmInstance() -> Realm? {
let realm = try Realm(configuration: Realm.Configuration(
fileURL: fileURL,
encryptionKey: nil,
schemaVersion: schemaVersion,
objectTypes: objectTypes))
return realm
}
访问:
DispatchQueue(label: "background").async {
Realm.realmInstance()?.objects(SPUserModel.self)
}