1

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

SAAdvertiseCell 有很多正在释放的对象,那么如何才能找到确切的问题所在呢?谢谢

4

2 回答 2

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:已经返回一个自动释放的对象,然后您发送另一个自动释放。因此,检查该方法以查找问题。

于 2013-05-17T09:10:31.893 回答
0

要创建自定义 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;
}

希望这可以帮助您解决问题

于 2013-06-03T10:23:57.377 回答