gpt4 book ai didi

ios - Realm :无法将主键属性 'id' 设置为现有值

转载 作者:搜寻专家 更新时间:2023-11-01 07:22:43 25 4
gpt4 key购买 nike

好的,所以我有一个具有以下结构的 Realm 数据库(名为 AutoComplete)

enter image description here

我现在我调用后端,获取所有 [Folder] 项目。

        Alamofire.request(.GET, URL).responseObject { (response: Response<Folders, NSError>) in
if response.result.isSuccess {
let mappedObject = response.result.value
let realm = try! Realm()
// open AutoComplete model
let openAutoComplete = realm.objects(AutoComplete)
try! realm.write {
if let everythingUnderResult = mappedObject?.result {
// for folder in [Folder]
for item in everythingUnderResult {
//check if the search string you typed in exists in the database
let searchifExists = openAutoComplete.filter("search == %@", searchString)
let makeString = searchifExists.first
let getSearchColumn = makeString?.search
if searchString == getSearchColumn {
//item exists, now add the folder to the autocomplete DB
makeString?.folder.append(item)
realm.add(makeString!,update: true)
} else {
print(item)
realm.add(item)
makeString?.folder.append(item)
}
}
}
}
} else {
print("couldn't get mobileapp data")
}
}

}

我的问题是我无法将文件夹对象添加到数据库中。 makeString?.folder.append(item) 代码行返回以下错误:

Can't set primary key property 'id' to existing value '65502'.'

我知道这个id已经存在于我的数据库的Folders模型中,具有相同的ID,但我只想在Autocomplete模型中引用它。 (不更新或覆盖它)。

有人知道如何解决这个问题吗?

最佳答案

这部分代码

   if searchString == getSearchColumn {
//item exists, now add the folder to the autocomplete DB
makeString?.folder.append(item) // it's ok
realm.add(makeString!,update: true) // you don't need this
} else {
print(item)
realm.add(item)
makeString?.folder.append(item)
}

只是删除

realm.add(makeString!,update: true)

这条记录不需要再添加到表中,添加到文件夹列表就可以了

关于ios - Realm :无法将主键属性 'id' 设置为现有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37898035/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com