LinkingObject的用法

时间:2016-10-12 06:04:41

标签: ios swift mobile realm

我不知道如何在以下情况下使用LinkingObject

class Message: Object{
       ...
      dynamic fromUser : User?
      dynamic toUser : User?
}

class User: Object {
      ....
      let messages = List<Message>()
}

messages应该有完整的发送和接收消息。 我如何使用LinkingObject? 感谢。

2 个答案:

答案 0 :(得分:0)

LinkingObject用于将对象绑定到另一个对象,以便以后更容易访问。在您的情况下,User对象稍后可以轻松调用与该User相关的Message对象。

因此,您可以拥有User对象的实例并访问它,如下例所示。

let user = User()
// then get all messages to him
let messages = user.messages()

如果您没有链接,则需要手动执行另一个查询以按用户ID或其他属性获取邮件。

答案 1 :(得分:0)

来自文档:

  

使用链接对象属性,您可以从特定属性获取链接到给定对象的所有对象。

在您的情况下,我想您希望在User个实例中获取所有关联的Message,因此您可以像这样定义LinkingObjects

class Message: Object {
      dynamic var fromUser : User?
      dynamic var toUser : User?

      let users = LinkingObjects(fromType: User.self, property: "messages")
}

否则,如果您需要从用户那里获取所有消息,您可以这样使用LinkingObjects

class Message: Object {
    dynamic var fromUser : User?
    dynamic var toUser : User?
}

class User: Object {
    let fromMessages = LinkingObjects(fromType: Message.self, property: "fromUser")
    let toMessages = LinkingObjects(fromType: Message.self, property: "toUser")
}

user.fromMessages将包含Message的所有fromUser == user

请查看Relationships section in the Docs了解详情。