我已经浏览了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)
}
我解析为特定的文件夹名称,并尝试删除特定索引处的文件夹,但由于某种原因,它们都会被删除。我该怎么办才能将它从特定文件夹中删除?
答案 0 :(得分:8)
通过调用Realm.delete(_:)
,您将从Realm中删除对象本身。根据您的说明,您只想从单个List
中删除对它的引用。您可以使用List.removeAtIndex(_:)
。