我有个问题。我正在尝试重写描述方法以按需要打印参考值。我读到这相当于Java toString()方法(我是swift新手)
问题是,它不起作用,我找不到任何解决方案。我完全按照示例中的方法来做。。我做错了什么?
这是我的代码:
import Foundation
import RealmSwift
@objcMembers class Patient: Object{
//toString()
override var description: String{
return "Patient: Ref nr: \(self.referenceNumber), First name: \(self.firstName), Surname: \(self.surname) Email: \(self.email)"
}
var patientId:Int{
return self.patientId
}
dynamic var referenceNumber: String = ""
dynamic var firstName:String = ""
dynamic var surname:String = ""
dynamic var email:String = ""
convenience init(referenceNumber:String, firstName:String, surname:String, email:String) {
self.init()
self.referenceNumber = referenceNumber
self.firstName = firstName
self.surname = surname
self.email = email
}
现在,每当我尝试打印时:(我发布了更多代码,以防史密斯的错误早于打印)
var patient: Results<Patient>!
override func viewDidLoad() {
super.viewDidLoad();
let realm = RealmService.shared.realm
let patient = realm.objects(Patient.self) //tocheck: can I get only one element from Realm and set to store only 1 element?
//HERE IT GOES WRONG
print(patient) //case 1
print(patient.description) //case 2
}
它在控制台中打印:(在两种情况下相同)
Results<Patient> <0x7fccaaf03b90> (
[0] Patient {
referenceNumber = 231321;
firstName = James;
surname = Rodriguez;
email = jr@lalalla.pl;
}
)
为什么?