【发布时间】:2017-10-02 21:50:31
【问题描述】:
我正在创建一个项目。我想如果userID 已经存在,它不会添加用户。但不知何故,我的代码无法正常工作。
这是我的领域模型对象(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"
}
}
这是添加用户的按钮:
@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")
}
}
有时它会运行代码,但大多数时候它会因错误而崩溃:
libc++abi.dylib: terminating with uncaught exception of type NSException.
【问题讨论】:
-
您必须查询数据库并针对其中的所有用户进行测试。您的 if 语句将始终为真,因为您始终使用新创建的用户进行测试。
-
异常的信息是什么?