[将数据从ios读取到领域并同时使用线程但是,“从错误的线程访问了领域”。发生错误您的代码有问题吗?
let realm = try! Realm()
let readData = realm.objects(DataRealm.self)
for i in 0...readData.count-1 {
DispatchQueue.global().async {
self.parsing()
}
}
您不能跨线程使用Realm对象。这就是为什么您会收到此错误。但是您可以使用可以跨它们传递的引用。我不确定如何将其应用于您的代码,因为没有任何地方可以使用readData中的单个对象。但是您要搜索的内容可能是这样的:
let realm = try! Realm()
let readData = realm.objects(DataRealm.self)
for data in readData {
let readDataRef = ThreadSafeReference(to: data)
DispatchQueue.global().async {
self.parsing(readDataReference: readDataRef)
}
}
在您的parsing()方法中,您需要从引用中获取对象,然后:
let data = realm.resolve(readDataReference)