领域没有正确删除

时间:2016-10-27 13:38:47

标签: ios swift uitableview realm

我有两个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)

物品仍在那里。 如何从两者中删除它们。

1 个答案:

答案 0 :(得分:2)

首先,我建议从tableView.reloadData()块中删除realm.write并将其放在下面。这将确保在重新加载表格视图之前正确删除该项目。

嗯,听起来你正在从父列表中删除对象,但是从Realm中没有正确删除。 Realm还没有support cascading deletes,所以您需要直接删除目标对象(OrderItem对象。从OrderItemList删除它,或删除{{ 1}}不会这样做,而不是删除他们所属的任何列表。

这有意义吗?如果您需要更多说明,请告诉我们!