0

我从 iOS 开始有一个愚蠢的问题。我只想显示一个 TableView 填充了存储在 NSMutableArray 中的字符串。我可以看到字符串在数组中,但由于某种原因 TableView 没有显示它们。

我基本上有这个:

@interface Test ()
@property (weak, nonatomic) IBOutlet UITableView *contactList;
@property (strong, nonatomic) NSMutableArray *contactsArray;
@end

- (void)onContactFound:(NSString*)contact 
{
    [self.contactsArray addObject:contact];
}

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

//4
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    //5
    static NSString *cellIdentifier = @"SettingsCell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
    //6
    NSString *tweet = [self.contactsArray objectAtIndex:indexPath.row];
    //7
    [cell.textLabel setText:tweet];
    [cell.detailTextLabel setText:@"via Codigator"];
    return cell;
}

我认为问题出在最后一部分。我从一个示例(http://www.codigator.com/tutorials/ios-uitableview-tutorial-for-beginners-part-1/)中复制了这段代码,该示例说我应该添加一些动态属性,但在我的 TableView 中我没有在属性检查器中有这些属性,所以基本上我没有@“SettingsCell”所以我想这至少是问题之一,也许这段代码不适用于我的情况,应该以另一种方式完成?

4

1 回答 1

2

我认为您正在尝试在不创建单元格的情况下使单元格出列。我认为你只会得到 nil 细胞。你应该使用这样的东西:

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

还可以查看 API 文档,其中指出:

dequeueReusableCellWithIdentifier:返回一个可重用的表格视图单元对象,该对象由其标识符定位。返回值:具有关联标识符的 UITableViewCell 对象,如果可重用单元队列中不存在此类对象,则返回 nil 。

dequeueReusableCellWithIdentifier:

于 2013-06-12T16:56:53.787 回答