Je crée un projet. Je veux si le userID
existe déjà, il n'ajoute pas l'utilisateur. Mais d'une manière ou d'une autre, mon code ne fonctionne pas correctement.Enregistrer l'utilisateur à l'aide d'un objet de domaine
Ceci est mon modèle objet Realm (User.swift):
import Foundation
import RealmSwift
class User: Object {
@objc dynamic var userID = Int()
@objc dynamic var username = ""
@objc dynamic var full_name = ""
@objc dynamic var myBool = Bool()
override static func primaryKey() -> String? {
return "userID"
}
}
Et c'est le bouton pour ajouter des utilisateurs:
@IBAction func add(_ sender: Any) {
let myUser = User()
let JSON_userID = Int(arc4random_uniform(5)) // This is temporary. I am going to get code from JSON, but using random for testing purpose.
if (myUser.userID != JSON_userID) {
myUser.userID = JSON_userID
myUser.username = "myUsername"
myUser.full_name = "My Name"
let realm = try! Realm()
try! realm.write {
realm.add(myUser)
}
}
else {
print("Already exist")
}
}
Parfois, il exécute le code, mais la plupart du temps il se bloque avec erreur:
libc++abi.dylib: terminating with uncaught exception of type NSException
.
Vous devez interroger la base de données et effectuer des tests sur tous les utilisateurs qui s'y trouvent. Votre instruction if sera toujours vraie car vous testez toujours avec un utilisateur nouvellement créé. – kirander
Quel est le message de l'exception? –