Realm Swift-如何在特定索引位置删除项目?

时间:2018-12-17 10:19:03

标签: swift realm

我将id的简单列表存储为Realm中的GUID,但是希望能够删除特定索引位置的对象。

例如,我想删除索引位置1处的04b8d81b9e614f1ebb6de41cb0e64432,如何实现?我是否需要添加主键,或者是否可以使用给定的索引位置直接删除项目?

Results<RecipeIds> <0x7fa844451800> (
    [0] RecipeIds {
        id = a1e28a5eef144922880945b5fcca6399;
    },
    [1] RecipeIds {
        id = 04b8d81b9e614f1ebb6de41cb0e64432;
    },
    [2] RecipeIds {
        id = cd0eead0dcc6403493c4f110667c34ad;
    }
)

这似乎应该是一个简单的问题,但是我找不到关于它的任何文档。即使指向正确方向的指针也可以。

1 个答案:

答案 0 :(得分:1)

Results正在自动更新,您不能直接对其进行修改。您需要更新/添加/删除Realm中的对象以影响Results实例的状态。

因此,您可以简单地从Results实例中获取所需的元素,将其从Realm中删除,并将其也从Results中删除。

假设问题中显示的Results实例存储在名为recipes的变量中,则可以执行以下操作:

let recipeToDelete = recipes.filter("id == %@","04b8d81b9e614f1ebb6de41cb0e64432")
try! realm.write {
    realm.delete(recipeToDelete)
}