我以以下方式在tableView中加载搜索结果,但收到警告,指出指针类型不兼容。

我下面的代码有什么错误?

// Our tableView containing the search results.
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    if (searchResults == nil) {
        return 0;
    } else {
        return [searchResults count];
    }
}
- (UITableView *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"SearchResultCell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }

    cell.textLabel.text = [searchResults objectAtIndex:indexPath.row];
    return cell;
}
// END tableView

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
{
    NSLog(@"The search text is: '%@'", searchBar.text);
    searchResults = [NSMutableArray arrayWithCapacity:10];
    for (int i = 0; i < 3; i++) {
        [searchResults addObject:[NSString stringWithFormat:@"Fake Result %d for '%@'", i, searchBar.text]];
    }
    [self.tableView reloadData];
}

最佳答案

tableView:cellForRowAtIndexPath:的返回类型不正确。它应该是UITableViewCell *而不是UITableView *

10-08 20:03