菜鸟教程小白 发表于 2022-12-13 07:44:36

ios - dequeueReusableCellWithIdentifier 总是返回 nil


                                            <p><p>我有一个包含 6 个单元格和几个部分的静态表格。当我初始化一个单元格时,它总是返回 nil,尽管我在传递的过程中使用了这个完全相同的方法...... </p>

<pre><code>- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (indexPath.section == SAVE_SECTION) {
      ATSaveCell *cell = ;
      if(cell == nil) {
            NSLog(@&#34;nil cell&#34;);
            cell = [ initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@&#34;SaveCell&#34;];
      }
      cell.textLabel.text = @&#34;test&#34;;
      return cell;
    }
</code></pre>

<p>nil 单元总是输出。在我的 Storyboard中,我有一个 tableviewcontroller 定义了单元格,id 是“SaveCell”。我还检查以确保表 ciewController 与我正在使用的类是同一个类...我在传递中使用了完全相同的方法,所以我不确定为什么单元格每次都返回 nil。</p>

<p>另外,初始化我的tableviewcontroller:</p>

<pre><code>ATSearchSettingsViewController *mySearchSettings = ;
</code></pre>

<p>很明显,表格 View 没有在 Storyboard 中注册原型(prototype)单元格。 </p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>如果问题是 UITableView 没有从 Storyboard中取出单元格。尝试检查您使用的是 <code>prototype cells</code> 而不是 <code>static cells</code>。 UITableView 不会将静态单元格出列。</p>

<p>如果问题是您总是调用 <code>[ init]</code>。如果 TableView 没有任何可重用的内容,则需要这样做。</p>

<p>来自文档:<em>dequeueReusableCellWithIdentifier</em></p>

<blockquote>
<p>This method dequeues an existing cell if one is available or creates a
new one using the class or nib file you previously registered. If no
cell is available for reuse and you did not register a class or nib
file, this method returns nil.</p>
</blockquote>

<p>因此,如果没有足够的单元格容纳 View ,它将始终创建一个新单元格。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - dequeueReusableCellWithIdentifier 总是返回 nil,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/23633626/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/23633626/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - dequeueReusableCellWithIdentifier 总是返回 nil