私はプロジェクトを作成しています。 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
DBにクエリを行い、その中のすべてのユーザーに対してテストする必要があります。 if文は常に新しく作成されたUserでテストするため、常にtrueになります。 – kirander
例外のメッセージは何ですか? –