为什么我们使用cellIdentifier?

Nic*_*ick 3 iphone static identifier uitableview ios

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath  {
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier  ];
    if(cell == nil){
        cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
    }
    cell.text = [[views objectAtIndex:indexPath.row] objectForKey:@"title"];
    return cell;
}
Run Code Online (Sandbox Code Playgroud)

为什么我们在这里使用CellIdentifier,为什么它是静态的?

Dar*_*ust 6

我们的想法是,表格视图不一定会在使用后破坏单元格,但可以回收它以提高性能.标识符用于返回正确的缓存单元格,而不是另一个表格视图的缓存单元格.例如,如果您有两种不同的单元格类型,您甚至可以为同一个表格视图使用多个标识符.

想象一下,有一个由标签和图像视图组成的单元格.初始化单元格时,需要创建单元视图,需要创建标签,需要创建图像视图.现在,该类型的每个单元看起来都一样,它们的内容只有不同.因此,不是每次都重复进行此设置,有时会返回未使用的单元格,只会填写新内容.