删除特定的Object Realm Swift

时间:2016-08-21 19:49:30

标签: ios database swift realm

我已经浏览了Realm的文档并且我已经在线查看,但没有找到解决我特定问题的方法。

这就是我所拥有的:

我的应用程序正在将特定信息存储到各种文件夹中,用户可以将相同的对象存储在多个文件夹中,或者这样做。

这是文件夹对象,它与项目有一对多的关系。文件夹可以存储任意数量的项目。

 class Folder: Object {

    dynamic var  name = ""
    dynamic var lastEdited = NSDate()
    dynamic var folderDescription = ""
    let items = List<ItemModel>()

}

项目模型:

class ItemModel: Object {

    dynamic var country:String!
    dynamic var date:String!
    dynamic var title:String!
    dynamic var area:String!
    dynamic var type:String!
    dynamic var text:String!
    dynamic var registered:String!
    dynamic var id:String!
    let metamap = List<Meta>()
    let authors = List<Manu>()
    let categories = List<Category>()

}

用户可以将多个这些项目存储在文件夹中,也可以将同一个项目添加到多个文件夹中。例如,用户可以将相同的项目添加到保存的文件夹,书签和愿望清单中。

我遇到的问题是,当用户从文件夹中删除某个项目时,它会从每个其他文件夹中删除它。例如。我只想从保存的文件夹中删除特定项目,但由于某种原因,它还会从书签和愿望清单文件夹中删除它。

以下是我用来删除文件夹的内容:

     let folderItemToDelete = folder?.items[indexPathToDelete!]
        try! uiRealm.write {
            uiRealm.delete(folderItemToDelete!)
        navigationController?.popViewControllerAnimated(true)

        }

我解析为特定的文件夹名称,并尝试删除特定索引处的文件夹,但由于某种原因,它们都会被删除。我该怎么办才能将它从特定文件夹中删除?

1 个答案:

答案 0 :(得分:8)

通过调用Realm.delete(_:),您将从Realm中删除对象本身。根据您的说明,您只想从单个List中删除对它的引用。您可以使用List.removeAtIndex(_:)

执行此操作