Разбор ios wherekey с помощью objectid


В моей таблице "Message" в Parse у меня есть поле под названием conversation, которое является pointer к Conversation (другая таблица в моей базе данных).

Чтобы запросить Message, я могу сделать:

    PFQuery *messageQuery = [PFQuery queryWithClassName:@"Message"];
    [messageQuery whereKey:@"conversation" equalTo:_conversation.objectid];
    [messageQuery findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {

          ...

    }];

Или мне нужно получить фактический PFObject *myConversation и использовать его...

    PFQuery *messageQuery = [PFQuery queryWithClassName:@"Message"];
    [messageQuery whereKey:@"conversation" equalTo:myConversation];
    [messageQuery findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {

          ...

    }];

Кажется, что #1 не работает, но #2 does...my вопрос в том, как я могу заставить #1 работать (т. е. использовать идентификатор PFObject для запроса, когда у меня есть поле указателя)

1 4

1 ответ:

.objectId-это просто строка, если ваш ключ "разговор" содержит указатель на myConversation, то вы должны включить PFObject в поле равно.

Если у вас есть только objectId, вы можете искать указатели без данных, используя:

PFObject * myConversation = [PFObject objectWithoutDataWithClassName:@"Conversation" objectId:_conversation.objectid];

// continue here

[messageQuery whereKey:@"conversation" equalTo:myConversation];
[messageQuery findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {

      ...

}];