对象发送 - 自动释放过很多次,得到这个漏了我的iPhone应用程序?(Object sent -

2019-10-18 03:38发布

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

SAAdvertiseCell有很多被释放的对象,所以怎么可能找到其确切的问题是什么? 谢谢

Answer 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:已经返回一个自动释放的对象,那么你再派自动释放。 所以检查的方法来发现问题。



Answer 2:

对于创建自定义的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;
}

希望这将帮助你解决你的问题



文章来源: Object sent - autorelease too many times, getting this leak for my iPhone app?