由Realm对象制作的用户具有相同的主键区域

我试图使用一个真正的模型,使一个用户configuration文件,这里是模型如下:

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" } } 

我通过IBActionbutton将对象添加到默认的领域文件,如下所示:

 @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() } 

问题是创build的用户对象具有相同的“id”/主键:

Jane Vergo年龄17岁ID:A6A67E2D-C9A9-4D6B-815C-27BC22B3089B

杰克·劳森19岁ID:A6A67E2D-C9A9-4D6B-815C-27BC22B3089B

卢克·凯奇20岁ID:A6A67E2D-C9A9-4D6B-815C-27BC22B3089B

是否有无论如何,使每个用户有不同的主键/ ID?

领域是一个对象数据库,所以你需要每次创build一个新的对象:

 try! realm.write { user = User() // Create a new user instance 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) }