为什么在以下UITableViewCell的方法实现中我们使用静态实例?

时间:2014-01-14 19:28:34

标签: ios objective-c

从“开始iOS 6开发”一书,第8章,第227页。

- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *SimpleTableIdentifier = 
                @"SimpleTableIdentifier"; //why this string instance is   
                                          // static and what its purpose?

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:
SimpleTableIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc]
initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:SimpleTableIdentifier];
}
cell.textLabel.text = self.dwarves[indexPath.row];
return cell;
}

“此字符串将用作表示表格单元格类型的键。”

这个实例的目的是什么?  2.为什么它是静态的?  3.本书中使用的术语是“实例”。在这种情况下,术语“实例”和“变量”是否可以互换?

1 个答案:

答案 0 :(得分:4)

它是静态的,所以它只会在我们第一次调用tableView:cellForRowAtIndexPath:时设置。对此方法的后续调用不必创建新的局部变量并且每次都设置它,因为它始终是相同的。