Reputation: 79
I am trying to rename a value in a database by having a Primary Key:
var arrayKeys = ["608477babe8015e2e64eff96", "608488ac638dd4f4f24362de"]
for i in arrayKeys {
realm.create(NameFolderClass.self, value: ["_id": i, "nameFolder": nameFolderField.text!], update: .modified)
self.tableView1.reloadData()
}
Error:
Thread 1: "Invalid value '608477babe8015e2e64eff96' of type 'Swift.__StringStorage' for 'object id' property 'NameFolderClass._id'."
When I put a separate key without a loop in "id_": "608477babe8015e2e64eff96" - does not work. And when I write in" id_": self. nameFolderClass[indexPath. row]. _id-then it works.
PrymaryKey have a type String
How can I iterate over the values if there can be more than two?
Upvotes: 0
Views: 86
Reputation: 79
let nameFolderField = alertController.textFields![0] as UITextField
//Если nameFolderField больше 0, то записываем и обновляем Базу данных
if nameFolderField.text!.count > 0 && nameFolderField.text != " " {
//если в массиве уникальных папок нет вводимого текста:
if self.uniqArrayNameFolder().contains(nameFolderField.text!) == false {
let aaa = realm.objects(NameFolderClass.self).filter("nameFolder = 'дом'")
//стараемся записать
try! self.realm.write {
for n in aaa {
realm.create(NameFolderClass.self, value: ["_id": n._id, "nameFolder": nameFolderField.text!], update: .modified)
self.tableView1.reloadData()
}
I am did it!
Upvotes: 1