即时访问:领域使用领域,以节省检索从QR码下面的数据不正确的线程斯威夫特
self.barcodesHandler = { barcodes in
if !self.dispatched {
self.dispatched = true
for barcode in barcodes {
print("Barcode found: type=" + barcode.type + " value=" + barcode.stringValue)
let barcodeStringArray = barcode.stringValue.components(separatedBy: ": ")
let infoVC = ANSProductDetailViewController()
self.product = ANSProductModel(name: barcodeStringArray[1], manufacturer: barcodeStringArray[2], registerLocation: barcodeStringArray[0], detailUrl: barcodeStringArray[3])
infoVC.product = self.product
DispatchQueue.main.async(execute: {
infoVC.hidesBottomBarWhenPushed = true
self.navigationController?.pushViewController(infoVC, animated: true)
})
break
}
self.product.saveToLocal()
}
}
//ANSProductModel save method, self = ANSProductModel
func saveToLocal() {
Realm.execute { (realm) in
realm.add(self, update: true)
print("Product saved")
}
}
然而,打印日志后,把它扔到了所谓的“境界不正确的线程斯威夫特访问”异常。我已经阅读了一些类似的问题,但仍然不清楚,所以请任何人都可以帮助我澄清这个问题,以及如何修复我的代码。非常感谢
您需要在创建它的线程上调用Realm/managed RealmObject/managed RealmResults。 – EpicPandaForce