Ошибка логики Iphone TableViewController! - PullRequest
0 голосов
/ 14 июля 2011

Мне нужна быстрая помощь! ):

Я не совсем понимаю, как использовать TableViewContoller с веб-сервисом для получения источника данных. Вот как я это делаю.

У меня есть класс Model, в котором я определяю все переменные. Пример (Имя пользователя, дата и время) Кроме того, в классе модели у меня есть метод, в котором он будет использовать ASIHTTPRequest для извлечения источника данных json и создания NSMutableArray класса Model для создания и сохранения объекта.

Тогда в моем контроллере Tableview. Я запускаю метод в классе модели, который извлекает json из метода Viewdidload и обращаюсь к NSMutableArray, чтобы попытаться установить ячейку таблицы.

Тем не менее, ничего не появляется, даже когда я успешно получил JSON. (Я предполагаю, что таблица визуализировалась до того, как был возвращен json).

Есть ли какие-то проблемы в дизайне программ с тем, что я делаю? ): Дай мне идею! СПАСИБО !!!


EDIT !! (Нашел, что случилось) Извините ребята! Это мое плохо. В возвращаемом номере метода раздела я возвращаю 0 вместо 1. Что является причиной, почему это не показывает. потратил 2 часа на это. T.T

Спасибо всем!

Ответы [ 3 ]

0 голосов
/ 14 июля 2011

Вам необходимо реализовать метод ниже.

- (void)requestFinished:(ASIHTTPRequest *)request
{
   // Use when fetching text data
   NSString *responseString = [request responseString];

   // Use when fetching binary data
   NSData *responseData = [request responseData];
   [tableview reloadData]; 
}

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

Надеюсь, эта помощь.

0 голосов
/ 14 июля 2011

Возможно, вы захотите опубликовать NSNotification из вашего модельного класса после успешного получения данных.

[[NSNotificationCenter defaultCenter] postNotification:@"JSONDataDownloadSuccessful" object:nil];

, затем в вашем UITableViewController вы можете добавить наблюдателя

[[NSNotificationCenter] defaultCenter]  addObserver:self selector:@selector(JSONDataUpdated) name:@"JSONDataDownloadSuccessful" object:nil];

Для получения дополнительной информации посмотрите ссылку на класс NSNotificationCenter:

http://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Classes/NSNotificationCenter_Class/Reference/Reference.html

Надеюсь, это поможет.

Джейми

0 голосов
/ 14 июля 2011

После заполнения NSMutableArray (он же запрос выполнен) используйте [self.tableView reloadData];

Я предполагаю, что вы также правильно установили свойство cell.textLabel.text с данными массива.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...