首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >奇数UITableView高度行为与NSZombieEnabled

奇数UITableView高度行为与NSZombieEnabled
EN

Stack Overflow用户
提问于 2010-07-22 15:15:35
回答 1查看 70关注 0票数 0

我正在设定我的身高:

代码语言:javascript
复制
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{   
    CGFloat rowHeight = 0;

    if(indexPath.row == [self.items count]){ //more
        rowHeight = 50.0; //same as moreCell 
    }
    else{
        ChartlyCell *cell = (ChartlyCell*)[self tableView:tblView cellForRowAtIndexPath:indexPath];
        rowHeight = cell.totalHeight;
    }

    return rowHeight;   
}

下面是计算cell.totalHeight的方法:

代码语言:javascript
复制
-(float)totalHeight {
    float h = messageLabel.totalheight + 35;
    if(h < 68) h = 68;
    return h;
}

NSZombieEnabled = NO时,我的模拟器崩溃时没有调试错误。当NSZombieEnabled = YES运行时模拟器运行良好。不知道怎么解决?

更新:--这是我如何构建初始化单元格的方法:

代码语言:javascript
复制
cell = [[[ChartlyCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier andDelegate:self andChartlyDelegate:self andChartlyObj:myChartlyObject]autorelease];

如果我删除自动释放,一切正常。我还是很困惑为什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-07-22 16:10:04

可可记忆管理指南

假设cell是一个实例变量,请考虑:

代码语言:javascript
复制
cell = [[[ChartlyCell alloc] initWithStyle:UITableViewCellStyleDefault
                           reuseIdentifier:CellIdentifier
                               andDelegate:self
                        andChartlyDelegate:self
                             andChartlyObj:myChartlyObject]autorelease];

这将导致在池耗尽时收获cell,从而使cell指向现在已释放的ChartlyCell实例。如果你想要一个物体停留在周围,它必须被保留。保留指的是alloc,而实际上是autorelease撤消的。移除autorelease使对象保持在周围。

仿真器应该在启用僵尸的情况下返回错误。奇怪的是,它没有。通过http://bugreport.apple.com/文件一个错误,并附上一个建立的副本,您的应用程序崩溃的版本与这个问题的链接。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3310460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档