在我的应用程序中,在tableview单元格中,用于索引方法的行,我使用以下代码行 当我的申请用于分析时,我得到了以下泄漏
代码:
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
//if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
//}
// Configure the cell...
}
我得到这样的错误:
永远不会读取在初始化期间存储到单元格的值
答案 0 :(得分:2)
在此行中初始化名为“cell”的局部变量:
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
然后你立即在下一行中覆盖该值:
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
分析仪正在引起你的注意。
在这种特殊情况下,这实际上不会导致泄漏。但它确实意味着您不会重复使用单元格,因此这会影响表格视图的性能。
如果您要删除此警告&不用担心UITableView性能。然后你需要在上面的代码中添加2行代码。请遵循以下代码。
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if(cell!=nil)
cell=nil;
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
以上代码将完美运作&删除警告。
答案 1 :(得分:1)
在此行中初始化名为“cell”的局部变量:
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
然后你立即在下一行中覆盖该值:
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
分析仪正在引起你的注意。
在这种特殊情况下,这实际上不会导致泄漏。但它确实意味着您不会重复使用单元格,因此这会影响表格视图的性能。