gpt4 book ai didi

ios - Realm 结果数组的计数始终等于 1

转载 作者:行者123 更新时间:2023-11-30 12:06:55 24 4
gpt4 key购买 nike

我正在开发一个QRCode扫描仪应用程序,其逻辑是当设备扫描代码时,它将将该代码的信息保存到Realm中,用户可以在TableView中看到它们。

但现在我面临一个问题,结果数组总是返回一个元素,即使我扫描了很多次。

下面是我保存qrcode对象的代码:

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")
}
}

以及在 TableView 中检索它们的代码:

var productList: Results<ANSProductModel>!

override func viewDidLoad() {
super.viewDidLoad()
let realm = try! Realm()
productList = realm.objects(ANSProductModel.self)
tableView.register(UINib(nibName: "ANSProductHistoryCell", bundle: nil), forCellReuseIdentifier: "ANSProductHistoryCell")
// Do any additional setup after loading the view.
}

请任何人都可以帮助我,我已经尝试了很多,但仍然坚持使用它们。非常感谢!

最佳答案

基于Real Swift 2.10.2最新文档( https://realm.io/docs/swift/latest/ ),保存效果是一样的,可以试试这个方法吗?

func saveToLocal() {
// Get the default Realm
let realm = try! Realm()

// Persist your data easily
try! realm.write {
realm.add(self)
print("Product saved")
}
}

编辑:也许您正确保存了新数据,请确保保存后重新加载 UITableView

关于ios - Realm 结果数组的计数始终等于 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46579971/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com