我想对从iOS领域读取的数据进行线程处理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我想对从iOS领域读取的数据进行线程处理相关的知识,希望对你有一定的参考价值。

[将数据从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)

以上是关于我想对从iOS领域读取的数据进行线程处理的主要内容,如果未能解决你的问题,请参考以下文章

关键帧中的非动画属性在 iOS 上被忽略

4000 个我想对其进行字符串搜索的文件

使用 rxjava 和 dagger2 跨线程访问领域

对 indexedDB 查询的结果进行排序

JAVA NIO 读取事件的产生机制

在 Ruby 中,您可以对从文件中读取的数据执行字符串插值吗?