2010-10-08 60 views
0

所以我想知道是否这是一个普遍的问题是使用NSData泄漏内存来存储连接响应数据。例如,我有这样的行初始化我的数据对象NSURLConnection和NSData泄漏内存

davData = [[NSMutableData data] retain]; 

,然后在连接错误或完成加载,我将其释放。根据我的理解,这不应该是一个泄漏正确的?出于某种原因,即使我释放它后,数据仍然显示在乐器中。任何想法可能会造成这种情况?谢谢!

回答

0

尝试初始化它是这样的:

davData = [[NSMutableData alloc] init]; 

你正在做它并没有真正建立一个泄漏的方式,但它是依赖你的对象被系统自动释放这可能是为什么你仍然可以看到它。

+0

唯一的问题是它试图追加数据后崩溃。我认为在此之前的某个时候,它会从池中自动释放...现在我遇到的相反问题。 – gabaum10 2010-10-08 14:26:17

+0

苹果文档说,应该保留这一点。我只是不知道如何正确释放它,所以它不会停留在周围。我怀疑当我在连接完成加载时用这些数据初始化一个XML解析器时会发生这种情况...... – gabaum10 2010-10-08 14:29:23

+0

只要你分配它,它就不会被自动释放,你可以尝试在xml解析完成时释放它。 – Ben 2010-10-08 14:38:05