2015-10-13 2 views
0

Я использую Parse для моих исходных данных. Здесь я сохранил массив словарей, чтобы затем выполнить запрос в мое приложение и загрузить его в таблицу.Запрос в Table View Controller

Вот мой массив сохраняется в Parse:

enter image description here

Когда я запрашиваю его в viewDidLoad я могу установить пустой массив (self.dealListArray), равный массив грамматического разбора.

Вот как это выглядит:

enter image description here

Первый NSLog() выводит весь массив из Parse отлично. Но второй NSLog вне скобок выводит NULL.

Вид таблицы не загружается, потому что мой массив равен NULL. Как я могу сохранить информацию из запроса, чтобы я мог заполнить ее табличным представлением?

Спасибо, любая помощь очень ценится

+0

Потому что это асинхронная. [yourTableView reloadData] после 'self.dealListArray = [resMenu objectForKey: @" Сделки "];' возможно, вызвав его в mainQueue (поскольку он связан с UI). – Larme

+0

Вы можете сами создать механизмы запроса и обновления, или вы можете использовать Parse, предоставленный 'PFQueryTableViewController' в структуре ParseUI. Он автоматически позаботится о том, чтобы показать индикатор активности, обновить таблицу с извлеченными данными, когда они заполнены, разбивка на страницы и тонны других удобных методов – Russell

ответ

2

У вас нет реальной гарантии, когда блок называется. Поэтому, вероятно, лучше всего подождать, пока данные будут загружены, а между тем есть UIActivityIndicatorView или что-то похожее, чтобы указать, что что-то загружается.

Кроме того, когда блок вызывает вызов, и вы изменяете значение dealListArray, вам придется перезагрузить данные tableview.

как это ...

self.dealListArray = [resMenu [email protected]"Deals"]; 
NSLog(@"%@", self.dealListArray]; 

[self.tableView reloadData]; 
Смежные вопросы