РЕШЕНО. Как я могу получить новый уникальный идентификатор для каждого нового объекта в Realm?


#1

Я пытаюсь создавать объекты в Realm с уникальным идентификатором. Я использую этот код:

    @objc dynamic var id = 0
    @objc dynamic var name = ""

    override static func primaryKey() -> String? {
        return "id"
    }
}

и в моем StorageManager я использую этот код:

import RealmSwift

let realm = try! Realm()

class StorageManager {
    static func saveObject(_ person: Persons) {
        try! realm.write {
            realm.add(person)
        }
    }
    
    static func deleteObject(_ person: Persons) {
        try! realm.write {
            realm.delete(person)
        }
    }
}

Но когда я добавляю второй новый объект, я получаю ошибку:

Terminating app due to uncaught exception ‘RLMException’, reason: ‘Attempting to create an object of type ‘Persons’ with an existing primary key value ‘0’.’

Как я могу получить новый уникальный идентификатор для каждого нового объекта?


#2

при создании второго объекта присвойте id, отличный от первого (не 0)…


#3

В реалме нету автоинкремента из коробки и его не хотят вводить. Тут нужно самому придумывать.


#4
@objc dynamic var id = UUID().uuidString

#5

Спасибо большое!!!


#6

Это сработало! Благодарю! :pray: