谁能解释一下这些基本的iOS代码行吗
我正在做一个苹果开发者教程,我有几个关于底部代码行的基本问题:谁能解释一下这些基本的iOS代码行吗,ios,Ios,我正在做一个苹果开发者教程,我有几个关于底部代码行的基本问题: 这些代码行中没有一行alloc和init它们创建的对象?这是因为对象是在创建时指定的值吗 如果没有与cell identifier参数同名的cell对象,那么dequeueReusableCellWithIdentifier方法-是该方法返回nil的唯一方法吗?如果池中没有可以重用的单元格,它会创建一个还是返回nil?文档说明该方法返回一个带有相关标识符的UITableViewCell对象,如果可重用单元队列中不存在此类对象,则返回
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
BirdSighting *sightingAtIndex = [self.dataController objectInListAtIndex:indexPath.row];
从评论中
你发布的代码行实际上没有创建任何东西;它们获取对其他地方创建的事物的引用。其他一些东西——您的代码或框架代码——已经用alloc/init对它们进行了实例化,现在正为您提供访问权限 在表视图示例中,如果在表视图中注册了一个类/nib,那么它将为您创建单元格。如果不是,则当
dequeueReusableCellWithIdentifier:
返回nil
时创建它。无论哪种方式,当它返回非nil时,它都是在某个点创建的对象,而不是您的程序当时所在的点
(self.dataController one不是我所认识的东西,但必须应用相同的逻辑…它的列表正在由您之前所做的事情预填充,或者它正在生成内容并按您的要求提供给您。)搜索一下@Anil这两篇文章都没有回答我的问题;它们可以引用其他地方创建的东西。@Phillip Mills-我知道它们只是指向对象/实例的指针。然而,我不需要分配初始化它们。为什么?因为其他东西已经做到了这一点,并且只是为您提供了访问权限。感谢菲利普·米尔斯的帮助,您总结了这一点。