发送对象 - 自动释放太多次,为我的iPhone应用程序泄漏?

时间:2013-05-17 08:41:41

标签: iphone object memory memory-leaks

我发送了太多对象 - 自动释放太多次,这个内存泄漏我的iPhone应用程序并且不知道如何解决它 http://screencast.com/t/fPzMNewvq 以上是相同的屏幕截图。

SAAdvertiseCell有很多正在发布的对象,那么如何找到确切问题的位置呢? 感谢

2 个答案:

答案 0 :(得分:1)

首先为什么不重复使用细胞?

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    Cell* cell = [tableView dequeueReusableCellWithIdentifier:cell_id];
    if(!cell)
    {
        cell = // create new cell;
    }

    // configure cell

    return cell;
}

对于你的问题:似乎initWithData:已经返回一个自动释放的对象,然后你发送另一个自动释放。因此,请检查该方法以找到问题。

答案 1 :(得分:0)

要创建Custom UITableViewCell,请以这种方式编写代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
 {
      static NSString *CellIdentifier = @"MyTableViewCellId";
      MyTableViewCell *cell = (MyTableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

      if (cell == nil) {
          NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"MyTableViewCell" owner:self options:nil];
         cell = [topLevelObjects objectAtIndex:0];    
      }

      // write your code to customize cell or providing data content

      return cell;
}

希望这能帮助您解决问题