Разбор 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 ответ:
.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) { ... }];