2014-11-21 1 views
2

У меня есть 2 классов: User, BooksОтношение к классу пользователя с помощью указателя: Код ошибки 102

In User таблице у меня есть: objectId, AuthorName

In Books таблице у меня есть: objectId, BookName, authorIDptr

AuthorIDptr является Указатель к User Класс

Когда я запускаю этот запрос:

var bookQuery = PFQuery(className:"Books") 
bookQuery.whereKey("authorIDptr", equalTo: PFUser.currentUser().objectId) 
bookQuery.includeKey("authorIDptr") 

var userQuery = PFUser.query() 
userQuery.whereKey("BookName", matchesKey: "Curious George", inQuery: bookQuery) 

userQuery.findObjectsInBackgroundWithBlock {.... 

Я получаю следующее сообщение об ошибке:

Error: Error Domain=Parse Code=102 "The operation couldn’t be completed. (Parse error 102.)" UserInfo=0x7ff2e26f4660 {error=pointer field authorIDptr needs a pointer value, code=102} { code = 102; error = "pointer field authorIDptr needs a pointer value"; }

Класс заполняется данными. Когда я нажимаю на указатель в классе Books, он загружает соответствующую запись класса User.

Может кто-нибудь помочь показать мне, что я делаю неправильно.

Что я хочу: Я хочу, чтобы все книги AuthorName были представлены в виде таблицы.

Спасибо,

Dennis

ответ

3

Изменить эту строку:

bookQuery.whereKey("authorIDptr", equalTo: PFUser.currentUser().objectId) 

в этом:

bookQuery.whereKey("authorIDptr", equalTo: PFUser.currentUser()) 

Указатели в разборе доступны через object и не objectId. Поэтому, когда вам нужно запросить указатель, вы просто передаете весь объект в запрос, и синтаксический анализ сделает все остальное за вас.

+0

Да, это работает ... спасибо! – dennis

+0

Теперь, как я могу изменить authorIDptr в классе Books? :) – dennis

+0

На самом деле, я получил его ... просто обновить ключ с помощью объекта ... не objectID ... еще раз спасибо! – dennis