0

我对 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];

但是在上面的函数中,在我尝试表示下一个与上一个不同的获取数据后我崩溃了(它甚至可以是空的)

我想我可能需要删除所有以前的单元格,但我不知道该怎么做。(我尝试了一些来自谷歌和这个网站的代码,但我缺乏基本知识,我不断得到所有可能的例外情况)。

请有人给我一个带有基本解释的像样的例子吗?我将不胜感激

谢谢。

4

1 回答 1

0

您需要在某处注册您的 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];
于 2013-11-05T19:53:23.153 回答