• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 自动释放的 NSDictionary 的内存泄漏

[复制链接]
菜鸟教程小白 发表于 2022-12-12 14:20:27 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我已经分析了我的代码,分析器显示我的方法之一是在自动释放的对象上泄漏内存。以下是相关代码的片段:

-(void) fillRSSEntriesDictionaryObject: (NSMutableDictionary *) dictionaryObject  withAllRSSEntries: (NSArray *) allRSSEntries forKey: (NSString *) keyForRSSEntriesArchive {
    RSSEntry *anRSSEntry;
    NSArray *source;
    NSMutableArray *episodes;   
    NSMutableArray *sourceArray = [[[NSMutableArray alloc] initWithObjects:nil] autorelease];
    for (int i=0; i<[allRSSEntries count]; i++) {
        source = [allRSSEntries objectAtIndex:i];   // grab the next source array.
        episodes = [[[NSMutableArray alloc] initWithObjects:nil] autorelease];  // initialize the episodes array
        for (int j=0; j<[source count]; j++) {
            anRSSEntry = [source objectAtIndex:j];
            NSDictionary *episodeDictionary = [NSDictionary dictionaryWithObjectsAndKeys:anRSSEntry.blogTitle, @"Blog Title", 
                                               anRSSEntry.articleTitle, @"Article Title", nil];
            [episodes addObject:episodeDictionary]; // save the info for this episode
        }

        [sourceArray addObject:episodes];
    }

    // Finally, we need to create the key-value pair for the source array
    [dictionaryObject setObject:sourceArray forKey: keyForRSSEntriesArchive];
}

如您所见,sourceArray 和 Episodes 是唯一分配的内存,并且两者都是自动释放的。 episodes 数组被添加到 sourceArray 数组中。 sourceArray 成为传递给调用者的对象。

profiler提供的具体信息是,责任库是“基础”,责任调用者是+[NSDictionary(NSDictionary)newWithContentsOf:immutable]。当我展开它时,它最终将我的应用程序作为负责的库,并将此方法作为负责的调用者。

既然这些是自动释放的数组,为什么分析器会提示内存泄漏?



Best Answer-推荐答案


这里没有泄漏。很可能其他一些代码稍后会使用这些对象并泄漏它们。

您可以使用 Instruments 查看泄漏对象的保留/释放历史记录,这应该可以帮助您找到额外的保留或丢失的释放。

关于ios - 自动释放的 NSDictionary 的内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18665610/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap