Im echten Modell zu verwenden versuchen, ein Benutzerprofil zu machen, hier ist das Modell unter:Benutzer aus Realm Objekt haben denselben Primärschlüssel Realm
class UserProfile: Object {
dynamic var id = UUID().uuidString
dynamic var name:String = ""
dynamic var age = ""
dynamic var email = ""
dynamic var userName = ""
dynamic var passWord = ""
override static func primaryKey() -> String? {
return "id"
}
}
ich Objekte in die Standard-Realm-Datei hinzufügen über eine IBAction Taste wie hier gezeigt:
@IBAction func signUpButton(_ sender: UIButton) {
try! realm.write {
user.userName = userNameTextField.text!
user.passWord = passWordTextField.text!
user.email = emailTextField.text!
user.name = fullNameTextField.text!
user.age = ageTextField.text!
user.id = UUID().uuidString
realm.add(user)
}
userQuery()
}
Das Problem ist, dass die erstellten Benutzerobjekte den gleichen "id"/Primärschlüssel haben:
Jane Vergo ist 17 Jahre alt ID: A6A67E2D-C9A9-4D6B- 815C-27BC22B3089B
Jake Lawson ist 19 Jahre alt ID: A6A67E2D-C9A9-4D6B-815C-27BC22B3089B
Luke Cage 20 Jahre alt ID ist: A6A67E2D-C9A9-4D6B-815C-27BC22B3089B
Gibt es trotzdem zu Machen Sie es so, dass jeder Benutzer einen anderen Primärschlüssel/ID hat?
Ja! Obwohl das einzige Problem jetzt ist, dass jeder Benutzer jetzt genau den gleichen Primärschlüssel hat, gibt es das trotzdem, damit jeder Benutzer einen eigenen eindeutigen Schlüssel bekommt? –
Was ist mehr ist, dass die Primärschlüssel jedes Mal ändert. –
Es klingt wie Sie ein logisches Problem haben. Erstens, Realm lässt Sie nicht zwei getrennte Objekte mit demselben Primärschlüssel schreiben, also vermute ich, dass Sie tatsächlich nur einen in der Datenbank haben, der ständig aktualisiert wird. Verwenden Sie den Realm Browser, um zu bestätigen, was Sie in der Datenbank haben. Zweitens nehme ich an, Sie sagen, wenn Sie denselben Benutzer mehr als einmal anmelden, erhalten Sie einen anderen Primärschlüssel. Sie müssen überprüfen, ob der angemeldete Benutzer noch nicht angemeldet ist. Eine Option wäre, dass "userName" der Primärschlüssel anstelle von "id" ist. – Michael