谁能解释一下这些基本的iOS代码行吗

谁能解释一下这些基本的iOS代码行吗,ios,Ios,我正在做一个苹果开发者教程,我有几个关于底部代码行的基本问题: 这些代码行中没有一行alloc和init它们创建的对象?这是因为对象是在创建时指定的值吗 如果没有与cell identifier参数同名的cell对象,那么dequeueReusableCellWithIdentifier方法-是该方法返回nil的唯一方法吗?如果池中没有可以重用的单元格,它会创建一个还是返回nil?文档说明该方法返回一个带有相关标识符的UITableViewCell对象,如果可重用单元队列中不存在此类对象,则返回

我正在做一个苹果开发者教程,我有几个关于底部代码行的基本问题:

  • 这些代码行中没有一行alloc和init它们创建的对象?这是因为对象是在创建时指定的值吗

  • 如果没有与cell identifier参数同名的cell对象,那么dequeueReusableCellWithIdentifier方法-是该方法返回nil的唯一方法吗?如果池中没有可以重用的单元格,它会创建一个还是返回nil?文档说明该方法返回一个带有相关标识符的UITableViewCell对象,如果可重用单元队列中不存在此类对象,则返回nil

  • 提前谢谢你的帮助

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    
    BirdSighting *sightingAtIndex = [self.dataController objectInListAtIndex:indexPath.row];
    
    从评论中


    你发布的代码行实际上没有创建任何东西;它们获取对其他地方创建的事物的引用。其他一些东西——您的代码或框架代码——已经用alloc/init对它们进行了实例化,现在正为您提供访问权限

    在表视图示例中,如果在表视图中注册了一个类/nib,那么它将为您创建单元格。如果不是,则当
    dequeueReusableCellWithIdentifier:
    返回
    nil
    时创建它。无论哪种方式,当它返回非nil时,它都是在某个点创建的对象,而不是您的程序当时所在的点


    (self.dataController one不是我所认识的东西,但必须应用相同的逻辑…它的列表正在由您之前所做的事情预填充,或者它正在生成内容并按您的要求提供给您。)

    搜索一下@Anil这两篇文章都没有回答我的问题;它们可以引用其他地方创建的东西。@Phillip Mills-我知道它们只是指向对象/实例的指针。然而,我不需要分配初始化它们。为什么?因为其他东西已经做到了这一点,并且只是为您提供了访问权限。感谢菲利普·米尔斯的帮助,您总结了这一点。