Я хочу поток данных, считанных из области в iOS - PullRequest
0 голосов
/ 26 мая 2020

Чтение данных из ios в область и одновременное использование потоков Но «Доступ к области из неправильного потока». Произошла ошибка. Проблема с вашим кодом?

let realm = try! Realm()
        let readData = realm.objects(DataRealm.self)
        for i in 0...readData.count-1 {

            DispatchQueue.global().async {
                self.parsing()
            }
        }

1 Ответ

0 голосов
/ 26 мая 2020

Вы не можете использовать объекты 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)
...