如何访问Realm Swift

时间:2016-10-17 16:59:44

标签: swift realm

这是我的代码:

 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 = ""
}

}

2 个答案:

答案 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一起使用。我希望它会有用。

https://www.appcoda.com/realm-database-swift/