我不知道如何在以下情况下使用LinkingObject
。
class Message: Object{
...
dynamic fromUser : User?
dynamic toUser : User?
}
class User: Object {
....
let messages = List<Message>()
}
messages
应该有完整的发送和接收消息。
我如何使用LinkingObject?
感谢。
答案 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
。