Я использую PFQueryTableViewController
для извлечения объектов из Parse. Этот класс Parse имеет три столбца (группа, категория, клиент), которые являются указателями на другие классы Parse. Я хочу использовать параметр includeKey
для ввода всех данных объекта для каждого из этих объектов-указателей. Однако, когда я запускаю приведенный ниже код, я извлекаю базовые данные о каждом столбце указателя (например, ObjectID), но ни один из дополнительных столбцов, например столбец «name» класса Category.IncludeKeys в PFQuery не возвращает все реляционные данные
override func queryForTable() -> PFQuery {
let query:PFQuery = PFQuery(className:self.parseClassName!)
query.whereKey("client", equalTo: currentUser!)
query.whereKey("status", equalTo: "Open")
query.whereKey("expires", greaterThan: NSDate())
query.includeKey("group")
query.includeKey("category")
query.includeKey("client")
query.orderByAscending("expires")
if(objects?.count == 0)
{
query.cachePolicy = PFCachePolicy.CacheThenNetwork
}
return query
}
Когда мой PFQueryTableViewController называет это функция cellForRowAtIndexPath, у меня есть код, чтобы получить столбец «имя» в категории объекта принес в через includeKey
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath, object: PFObject?) -> PFTableViewCell? {
...
if let category = task["category"] as? PFObject {
cell?.categoryLabel.text = String(category["name"])
}
...
}
Запуск этого извлечение из категории в значение «имя» приводит к следующей ошибке и сбою в Xcode:
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Key "name" has no data. Call fetchIfNeeded before getting its value.'
Эта же ошибка возникает, когда я пытаюсь получить доступ к любому дополнительному столбцу ns объектов ссылки указателя.
Когда я print(category)
я появляюсь, чтобы получить правильный (но пустой) объект в моем журнале, без дополнительных столбцов, как «имя»:
<Category: 0x13c6ed870, objectId: mEpn6TH6Tc, localId: (null)> {
}
Я успешно испытанного вызова предложенных принести запрос для получения отсутствующие данные указателя для каждого столбца указателя, но (IMHO) дополнительная выборка поражает цель запроса includeKey
для ограничения запросов API.
Одна мысль, которую я имел, заключалась в том, что PFQuery
может разрешать только один звонок includeKey
. Но исследование, которое я провел через Parse's own iOS documentation и различные сообщения разработчиков, не указывает на ограничение максимального количества includeKeys
, которое может иметь запрос.
Я делаю что-то неподдерживаемое парсером или я просто синтаксически не извлекаю данные объектов каждого указателя надлежащим образом?
Я бегу последнюю ParseUI в этой публикации (1.1.6) и (1.9.0 Parse) с Xcode 7.0.1
Спасибо заранее за чтение моего поста! Я всего пару месяцев занимаюсь разработкой iOS, поэтому это одновременно интересно и разочаровывает!
Переход к альтернативной 'cellForRowAtIndexPath' с' object: PFObject! 'Сделал трюк. Благодаря! – Majedian21