gpt4 book ai didi

objective-c - 不重复的 UITableView 单元格

转载 作者:行者123 更新时间:2023-12-01 18:28:15 24 4
gpt4 key购买 nike

这可能是一个非常简单的问题,但我有点困惑如何正确地做到这一点。我读到我需要删除这行代码:

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

但是,我如何检查单元格是否不为零?我使用的完整代码如下。如果有人也可以解释这一行的目的:
static NSString *CellIdentifier = @"Cell";

完整代码:
static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
}

最佳答案

您在发布的代码中使用它。使用静态类型修饰符的原因是为了防止每次调用方法时都创建和初始化变量。 “正常”变量会在每种方法中自动创建和删除,实际上您可以这样做:

auto NSString* cellId = @"CellId";
auto类型修饰符是默认的(编译器添加它)并且为了节省打字人们不要添加它。通过把 static在类型之前,您更改此行为,以便在程序启动时仅初始化一次变量。它被称为 static因为变量中的数据带有类型修饰符 static每次调用方法时都不会自动从堆栈中删除...它是静态的/不会更改。由此得名。

由于您一遍又一遍地使用单元格 ID,因此只需将其初始化一次而不是在每次调用该方法时都创建/删除变量,这对性能有一点好处。对于具有大量单元格的表格尤其如此。但是我从未见过使用 auto 之间的区别。和 static变量,但这至少是它背后的想法。

您不应该删除 [tableView dequeueReusableCellWithIdentifier:CellIdentifier];线。您需要它才能从表格 View 中将表格 View 单元格出列。

关于objective-c - 不重复的 UITableView 单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11187920/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com