TableView Чтобы представлять детали из поиска

Я действительно новичок в разработке Xcode iOS.

Я выполняю поиск с помощью "автозаполнения". (Асинхронно отправляя запрос на сервер для каждого пользователя, который вставил букву, и по этому соединению я получаю запрашиваемые данные с сервера). эта часть работает очень хорошо :)

Моя проблема состоит в том, чтобы представить результат поиска в представлении таблицы, я много искал, но я не мог найти хороший пример, который бы мне помог. когда tableView рисует в первый раз все в порядке, но когда я выбираю другой запрос: (как только второй нажат, запрос возвращает новые данные, и я хочу сделать его в таблице без предыдущих данных).

Мое приложение вылетает с исключением "неправильный селектор, отправленный в экземпляр 0x..."

Я сохраняю извлеченные данные в NSArray * FetchedData; потом я изменил:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection: (NSInteger)section
{
 return [FetchedData count];
}

И в другой функции (я думаю, что мне нужно что-то изменить здесь, но я не знаю, что).

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath *)indexPath
{


cell.cellName.text = (NSString*)[FetchedData objectAtIndex:indexPath.row];
return cell;
}

После того, как я получаю FetchedData, я вызываю функцию: [self.tableView reloadData];

но в вышеприведенной функции я терплю неудачу после того, как попытаюсь представить следующие извлеченные данные, отличные от предыдущих (он может даже быть пустым)

Я думаю, мне может потребоваться удалить все предыдущие ячейки, но я не знаю, как это сделать. (Я пробовал некоторые коды из Google и с этого сайта, но мне не хватает базовых знаний, я все время получаю все возможные исключения).

Пожалуйста, может кто-нибудь дать мне достойный пример с основными объяснениями? Я бы очень признателен

Благодарю.

1 ответ

Вам нужно зарегистрировать класс tableViewCell где-нибудь (viewDidLoad),

[self.tableView registerClass:[CustomTableViewCellClass class] forCellReuseIdentifier:@"CellResuseIdentifier"];

и затем в,

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath *)indexPath
{
CustomTableViewCellClass *cell = [self.tableView dequeueReusableCellWithIdentifier:@"CellReuseIdentifier"];

cell.cellName.text = (NSString*)[FetchedData objectAtIndex:indexPath.row];
return cell;
}

После того, как вы извлекли данные, позвоните

[self.tableView reloadData];

licensed under cc by-sa 3.0 with attribution.