首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSFileManager泄漏

NSFileManager泄漏
EN

Stack Overflow用户
提问于 2011-06-20 11:55:25
回答 2查看 873关注 0票数 1

我在以下我编写的代码片段中发现了内存泄漏

代码语言:javascript
复制
NSFileManager *fileManager=[[NSFileManager alloc] init];
fileList=[[fileManager contentsOfDirectoryAtPath:DOCUMENTS_FOLDER error:nil] retain];
[fileManager release];  

泄露信息-

代码语言:javascript
复制
[NSFileManager contentsOfDirectoryAtPath:error:]
[NSFileManager directoryContentsAtPath:matchingExtension:options:keepExtension:error]
CFStringCreateWithBytes
_CFStringCreateImmutableFunnel3
_CFRuntimeCreateInstance.

我不知道该怎么解决?

EN

回答 2

Stack Overflow用户

发布于 2011-06-20 12:09:00

您的文件管理器的alloc-then-release很好。但

fileList=[[fileManager contentsOfDirectoryAtPath:DOCUMENTS_FOLDER error:nil] retain];

现在,您拥有了一个保留的数组。您必须稍后发布它。如果你不这样做,你将会有一个漏洞。

票数 4
EN

Stack Overflow用户

发布于 2011-06-20 12:11:59

内存管理的经验法则很简单:

对于每个allocretaincopynew,都必须有相应的releaseautorelease

您将在此处调用retain:

代码语言:javascript
复制
fileList=[[fileManager contentsOfDirectoryAtPath:DOCUMENTS_FOLDER error:nil] retain];

但你不会释放它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6406681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档