iphone - 内存泄漏与高内存分配?

标签 iphone ios4 memory-leaks memory-management

在我的 iPhone 应用程序中,我有一个很长的表,我正在从 xml(在线 xml)加载该表。该表连续显示一张图像和一些文本数据。我还使用延迟加载来加载图像。 现在,在仪器中没有严重的泄漏,但当我向下滚动表格时,整体内存分配会增加(意味着加载新图像)。

我想知道这会导致应用程序崩溃吗?我的客户说该应用程序在 3GS 和 iPhone 4 上崩溃,我正在 iPod 4G 上测试该应用程序。我没有看到任何崩溃,但我可以看到仪器中的内存分配很高。

请帮忙!

更新-

是的,我正在使用可重复使用的电池。当图像加载时,我使用此代码将它们添加到单元格中 -

- (void)appImageDidLoad:(NSIndexPath *)indexPath
{

IconDownloader *iconDownloader = [imageDownloadsInProgress objectForKey:indexPath];
        if (iconDownloader != nil)
        {
            UITableViewCell *cell = (UITableViewCell *)[tblView cellForRowAtIndexPath:iconDownloader.indexPathInTableView];

            // Display the newly loaded image
            UIImageView *mixtapeImage =  (UIImageView *) [cell viewWithTag:TAG_IMAGE];
            mixtapeImage.image = iconDownloader.appRecord.mixtape_image_obj;

        }

}

你是对的,我没有释放图像,因为如果我向上滚动表格,我必须再次在单元格中添加图像,这就是为什么我将它们缓存在“imageDownloadsInProgress”字典中。

有更有效的方法吗?

最佳答案

问题很可能是正在缓存的图像,在这种情况下,最好的解决方案是当您收到内存不足警告时从缓存中删除一些图像。您可以将它们临时写入磁盘,这将在下次需要它们时提供比重新下载更快的加载时间。

关于iphone - 内存泄漏与高内存分配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4886410/

相关文章:

objective-c - 潜在泄漏,将 NSString-Property 分配给 UILabel

java - 查找 jvm 8 中内存使用过多的原因

iphone - 为什么我的 iPhone 应用程序没有显示在 iPad App Store 上?

iphone - 比较两个自定义单元格中 UILables 的值

ios - 在模拟器上向 Game Center 添加分数,而不是在设备上

iphone - 在 4.0.0 上安装 iOS 4.0.2 SDK

iphone - MKAnnotationView 并将数据传递给另一个函数

iphone - 获取字符串的字节值以在 xcode 中替换它

ios - AVAssetExportSession 无音频(iPhone),适用于 iPad

iOS Instruments Allocation 和 Leaks 使 Xamarin 应用程序崩溃