Разбор PFQuery, гдеKey:notEqualTo не работает для объектов PFUser

Я думаю, что это ошибка в Parse, но я не знаю, куда сообщить об этом.

Я использую Parse со Swift. У меня есть PFQueryTableViewController.

В моей функции queryForTable я МОГУ использовать следующий запрос:

query.whereKey(kHWActivityFromUserKey, equalTo: User.currentUser())

Однако, когда я меняю equalTo на notEqualTo, вот так:

query.whereKey(kHWActivityFromUserKey, notEqualTo: User.currentUser())

... тогда таблица остается пустой и просто ничего не делает. (Он даже не показывает пустые строки.)

Я попытался выяснить, что происходит, поэтому я взял этот запрос и вызвал findObjectsInBackgroundWithBlock вручную, чтобы посмотреть на objects и error внутри блока. Удивительно, но блок так и не был вызван!

Итак, я выполнил запрос в основном потоке, например:

    var error = NSErrorPointer()
    var objects = query.findObjects(error)

Когда я запустил это, все мое приложение разбилось со следующим исключением:

2015-02-11 13:26:45.339 HDWR[18996:3057150] 
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', 
reason: 'Couldn't create cache key from 
<PFUser: 0x7f8e885de7c0, objectId: X7lSc1Gajm, localId: (null)> {
...

Поэтому я думаю, что есть ошибка, связанная с кэшированием, когда я использую whereKey:notEqualTo с PFObject.

Я также пробовал вместо этого использовать строку objectId в запросе, например:

    query.whereKey(kHWActivityFromUserKey, notEqualTo: User.currentUser().objectId)

Но затем Parse просто выдает ошибку указателя:

2015-02-11 13:45:46.550 HDWR[19708:3069545] 
Error: pointer field fromUser needs a pointer value (Code: 102, Version: 1.6.0)

Как я могу сообщить об этой ошибке в Parse? Или у вас есть идея обходного пути? Нам как бы нужно иметь эту логику в нашем приложении.


person ndbroadbent    schedule 11.02.2015    source источник
comment
Parse предоставляет канал для сообщения об ошибках через страницу справки: parse.com/help   -  person Héctor Ramos    schedule 11.02.2015
comment
Не могли бы вы показать свой код в findObjectsInBackgroundWithBlock? Вы передаете другие параметры/параметры в запрос?   -  person David V    schedule 11.02.2015
comment
Спасибо @HectorRamos, я разместил там ошибку.   -  person ndbroadbent    schedule 11.02.2015
comment
@IAmDav - это был обычный вызов findObjectsInBackgroundWithBlock, никаких других опций или параметров. Запрос также имел ограничение в 1000, был заказан createdAt и имел политику кэширования kPFCachePolicyCacheThenNetwork.   -  person ndbroadbent    schedule 11.02.2015
comment
У меня такая же проблема с php-sdk :( notEqualTo дает пустые результаты при использовании указателя   -  person jrmgx    schedule 05.04.2015


Ответы (1)


Это была ошибка в Parse iOS SDK версии 1.6.1. Кажется, это исправлено в 1.6.2.

person ndbroadbent    schedule 12.02.2015
comment
Спасибо, что поделились информацией :) - person David V; 12.02.2015