我有两个Realm Object Classe:
class OrderItemList: Object {
let ListofStockItemOrderData = List<OrderItem>()
//
}
class OrderItem: Object {
dynamic var UnitDescriptor = " "
dynamic var StockQty = 0
dynamic var StockItemUnique = Int()
dynamic var StockUnitCost = Int()
dynamic var isCompleted = false
}
我将商品添加并保存到OrderItem
,然后将其显示在UITableView
中,我删除了我添加的不需要的商品:
var dataToBeUsed : Results<OrderItem>!
let itemToBeDelete = dataToBeUsed[indexPath.row]
try! realm.write {
realm.delete(itemToBeDelete)
tableView.reloadData()
}
我打电话的时候:
let allObjects = realm.objects(OrderItemList.self)
我删除的项目已经消失,但是当我打电话时:
let allObjects = realm.objects(OrderItem.self)
物品仍在那里。 如何从两者中删除它们。
答案 0 :(得分:2)
首先,我建议从tableView.reloadData()
块中删除realm.write
并将其放在下面。这将确保在重新加载表格视图之前正确删除该项目。
嗯,听起来你正在从父列表中删除对象,但是从Realm中没有正确删除。 Realm还没有support cascading deletes,所以您需要直接删除目标对象(OrderItem
对象。从OrderItemList
删除它,或删除{{ 1}}不会这样做,而不是删除他们所属的任何列表。
这有意义吗?如果您需要更多说明,请告诉我们!