【问题标题】:Array Allocated in TableView cellforrowat indexpath delegate is leaking memory [closed]TableView cellforrowat indexpath委托中分配的数组正在泄漏内存[关闭]
【发布时间】:2012-10-30 14:39:10
【问题描述】:
NSMutableArray * lCellColValues = (NSMutableArray * ) nil;
lCellColValues = [[[NSMutableArray alloc] init] autorelease];

if (0 == lSecModulus) {
    if cObjTransListPtr.count > 0 && lObjTransData.m_cObjSDElemInfoPtr.count > 0) {
        [lCellColValues addObject: lObjTransData.m_cObjTransNamePtr];
        [lCellColValues addObject: [[NSNumber numberWithInteger: lObjTransData.m_cTransCounter] stringValue]];
    } else {
        if (nil != lObjSDElemInfo.m_cObjStartTimePtr) {
            NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init];
            dateFormatter.dateFormat = @"HH:mm:ss";
            [dateFormatter setTimeZone: [NSTimeZone timeZoneForSecondsFromGMT: 0.0]];
            NSString * myDateAsString = [dateFormatter stringFromDate: lObjSDElemInfo.m_cObjEndTimePtr];
            [lCellColValues addObject: myDateAsString];
            SAFE_RELEASE(dateFormatter)
        } else {
            [lCellColValues addObject: @""];
        }

    [lCellColValues addObject: [[NSNumber numberWithDouble: lObjSDElemInfo.m_cElementTime] stringValue]];
    }
}

if ((CustSplitCell * ) nil == lObjCellPtr) {
    if (m_cObjTransListPtr.count > 0) {
        lObjCellPtr = [[[CustSplitCell alloc] initWithStyleAndTitles: UITableViewCellStyleDefault reuseIdentifier: lObjCellIdentifier titles: lCellColValues rowNumber: indexPath.row] autorelease];
    } else {
        [lCellColValues addObject: @""];
        lObjCellPtr = [[[CustSplitCell alloc] initWithStyleAndTitles: UITableViewCellStyleDefault reuseIdentifier: lObjCellIdentifier titles: lCellColValues rowNumber: indexPath.row] autorelease];
    }
}

【问题讨论】:

  • 你能看懂你贴在这里的代码吗?
  • 我无法编辑代码。请尝试理解@Praveen S
  • 如果有人给出答案,他们将得到很好的赞赏..
  • 我找到了解决方案。我必须释放我收集数组数据的titles数组。这是调用的类方法。
  • 这是我告诉你的:“我认为你需要确保在适当的地方使用自动释放,在适当的地方保留,等等。”如果它对您有所帮助,那么您可以将我的答案标记为已接受。谢谢

标签: objective-c memory-leaks


【解决方案1】:

也许这可以帮助你: http://developer.apple.com/library/mac/#documentation/cocoa/conceptual/MemoryMgmt/Articles/MemoryMgmt.html

我认为你需要确保在适当的地方使用自动释放,在适当的地方保留等。如果你只使用 alloc/init 而没有自动释放,那么你需要确保在完成后有参考你可以自己释放它。当你以这种方式做事时,你就完全拥有了那个对象。这都包含在我链接到的规则中。

请注意,此答案是此问题中评论的副本:Memory leak for object in array

【讨论】:

  • 谢谢你没有给 developer.apple.com 作为参考。我的意思是我们知道我们可以访问网站中的内存管理详细信息
猜你喜欢
  • 2012-10-19
  • 1970-01-01
  • 1970-01-01
  • 2010-12-29
  • 1970-01-01
  • 1970-01-01
  • 2016-09-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多