簡體   English   中英

從tableView返回單元格時出錯

[英]Error returning cell from tableView

我在ios中使用表視圖相對較新。 我正在嘗試使用不同的視圖編輯數據並更新原始視圖中的值。 我設置了單元格標識符並編寫了以下代碼

#pragma mark - Table view data source

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView  
{ 
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{

    return self.items.count;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:    (NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"NameIdentifier";
    Item *currentItem=[self.items objectAtIndex:indexPath.row];
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

// Configure the cell...
     cell.textLabel.text=currentItem.itemName;    
     return cell;
    }

但是我收到以下錯誤:

NSInternalInconsistencyException', 
reason: 'UITableView dataSource must return a cell from tableView:cellForRowAtIndexPath:'

您需要檢查並確保dequeueReusableCellWithIdentifier能夠使單元格出列。 它崩潰了,因為它不會每次都返回一個單元格。 如果您無法將可重復使用的單元格出列,則需要創建一個新單元格。 您的代碼應如下所示:

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

        static NSString *CellIdentifier = @"NameIdentifier";
        Item *currentItem=[self.items objectAtIndex:indexPath.row];
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

        if (cell == nil)  
           cell = [[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier];

         // Configure the cell...
         cell.textLabel.text=currentItem.itemName;    
         return cell;
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM