我在Swift项目中使用Realm并且有一种奇怪的行为。我从模型中查询测试中的属性。我可以在断点中看到属性的正确值,但测试会收到一个空字符串。有什么想法吗?
型号:
func userName()->String{
if let userData = self.realm.objects(UserData).first{
return userData.userName
}
return "-"
}
测试:
let userName = userModel.userName()
XCTAssert(userName == "user@test.com")
- > userName是"",但行return userData.userName
中的断点表示" user@test.com"。
如果我将return userData.userName
替换为return "test"
,它会按预期工作。所以问题是当另一个方法查询它时,领域对象内的当前值会丢失。
如果我打印userdata.useName,我现在得到""如果我检查userData的属性是空的。但是,如果我点击userData上的小(i)我可以看到所有属性......
if let userData = self.realm.objects(UserData).first{
print("start>")
print(userData.userName)
print("<finish")
return userData.userName
}