这是我的代码:
func jobSelected() {
let businessName = realm.objects(UserSettings.self).last
let results = realm.object(ofType: Job.self, forPrimaryKey: "uuid")
print(results)
businessNameLabel.text = "Bid From \(businessName!.businessName)"
jobNameLabel.text = "Job Name \(results?.name)"
jobAddressLabel.text = results?.address
jobPhoneLabel.text = results?.phone
}
该函数返回正确的uuid,但其他属性(结果?.name,results?.address,results?.phone)返回nil。这些属性用于填充tableview单元格中的标签。
任何建议都表示赞赏。
略微纠正:我实际上是在点击一个tableview单元格并进入另一个视图。然后我调用jobSelected函数,我试图将获得的结果值放入UIView中的常规标签中。我无法想象这很重要因为我在segue中传递的是来自细胞标签的实际uuid字符串。
以下是我的模型类的内容: 进口基金会 导入RealmSwift
class Job: Object {
dynamic var name = ""
dynamic var address = ""
dynamic var phone = ""
dynamic var email = ""
dynamic var date = ""
dynamic var jobName = ""
dynamic var tripChg = 0.0
dynamic var notes = ""
dynamic var discount = 0.0
dynamic var uuid = NSUUID().uuidString
var rooms = List<Room>()
override static func primaryKey() -> String {
return "uuid"
}
let room = LinkingObjects(fromType: Room.self, property: "job")
var thisJob: Room? {return room.first}
convenience init(uuid: NSUUID) {
self.init()
self.uuid = ""
}
}
答案 0 :(得分:1)
解决:
错误的函数中的行是:
let results = realm.object(ofType: Job.self, forPrimaryKey: "uuid)
应该是:
let results = realm.object(ofType: Job.self, forPrimaryKey: (segueLabel.text!))
segueLabel保存“uuid”属性的实际值。我正在慢慢地学习。
感谢所有回复的人!
答案 1 :(得分:0)
请参考这个答案:
https://stackoverflow.com/a/31006930/4525734
这提供了如何使用Realm以及获取对象属性的清晰图片。
此外,我参考了本教程,以了解有关领域的更多信息并将其与swift一起使用。我希望它会有用。