Swift 从用户列表中删除对象

Swift 从用户列表中删除对象,swift,realm,Swift,Realm,我试图从用户列表中删除一个对象,但将原始值保留在数据库中 我的用户有一个收藏夹列表,这些收藏夹是let favorites=list(),它们是本地存储的数据库中的对象。当我从用户列表中删除对象时,它是从数据库中删除元素,而不仅仅是对对象的引用 以下是我当前正在尝试的内容,它会在删除时使应用程序崩溃: fileprivate func toggleFavourite(element: Element) { let favs = realm.objects(Element.self

我试图从用户列表中删除一个对象,但将原始值保留在数据库中

我的用户有一个收藏夹列表,这些收藏夹是
let favorites=list()
,它们是本地存储的数据库中的对象。当我从用户列表中删除对象时,它是从数据库中删除元素,而不仅仅是对对象的引用

以下是我当前正在尝试的内容,它会在删除时使应用程序崩溃:

fileprivate func toggleFavourite(element: Element) {
        let favs = realm.objects(Element.self)
        if let fav  = favs.filter("uuid == %@", element.uuid!).first {
            let index = favs.index(of: fav)
            try! realm.write {
                user!.favourites.remove(at: index!)
            }
        } else {
            try! realm.write {
                user!.favourites.append(element)
            }
        }
    }
我最初尝试从数据库中删除对象:

try! realm.write {
     user!.favourites.delete(element)
}

你能显示你得到的错误吗?@chirag90-这是一个标准的领域崩溃非描述,因为试图使用delete方法从强引用对象中删除
remove(at:index!)
,但实际上删除了整个对象,而不是用户对它的引用。删除方法实际上是正确的。我看到你在这里强行拆开几次包裹,也许这就是崩溃的原因?尝试安全地展开
用户
索引
,看看是否有帮助。@Starsky-在这种情况下,用户和索引都会存在,因此强制展开是可以的(如果用户或索引不存在,您甚至不会使用此方法)。删除方法虽然正确,但也会删除对象。我决定将收藏夹映射到另一个对象,而不是依赖到现有对象的链接。@user7684436
…这会在删除时使应用程序崩溃
-这就是为什么我认为它可能会因此崩溃,因为您从未提供确切的崩溃消息。