我使用Realm来存储用户信息。当我启动应用程序时,我查看Realm数据库以查看是否存在用户对象(以确定用户是否已登录或注销)。 这是我的代码:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
let config=Realm.Configuration(
schemaVersion: 2,
migrationBlock: { migration, oldSchemaVersion in
if (oldSchemaVersion<1) || (oldSchemaVersion<2){
migration.enumerateObjects(ofType: User.className()) { oldObject, newObject in
}
}
})
Realm.Configuration.defaultConfiguration=config
do{
let r=try Realm()
print(Realm.Configuration.defaultConfiguration.fileURL!.path)
let u=r.objects(User.self)
//prints 0
print("user:", u.count)
}catch let e as NSError{
print("failed to initate realm /", e)
}
return true
}
我可以从Realm Browser中看到用户在数据库中。但我无法得到它。我可能以错误的方式启动Realm,但我无法弄明白。有什么想法吗?
更新: 这是我在注册或记录时保存用户的代码:
DispatchQueue.main.async{
do{
let r=try Realm()
try r.write{
let u=User(id:"id", username:"username")
r.add(u)
}
}catch let e as NSError{
print(e)
}
}
}