0

我有一个处理一些 SOAP 通信的 NSURLConnectionDelegate 对象。本质上,我设置了一些属性值,然后调用一个构建 xml 请求的方法,然后将其发送到服务器。该对象也是一个 NSXMLParserDelegate,因此它可以解析来自服务器的 xml 响应并适当地处理数据。

使用对象时,我首先为许多属性设置值。之后的保留计数仍然是一。然后我调用我的第一个方法,这就是乐趣开始的时候。任何时候调用自定义方法或 NSURLConnectionDelegate 方法时,保留计数都会增加 1。调用 NSXMLParserDelegate 方法时不会发生这种情况。在所有通信完成并且我完成了对象的保留计数后,它的保留计数为 43。释放对象不会减少保留计数,所以我最终得到了一个我无法释放的对象。除此之外,该对象按预期工作。

有很多代码,我不确定什么是相关的,因为实际上我在方法中所做的任何事情似乎都没有导致 retainCount 增加。唯一值得一提的是,我从后台线程调用这些方法,但在主线程上执行它们:

[tEditor performSelectorOnMainThread:@selector(requestQueueList) withObject:nil waitUntilDone:YES];
4

1 回答 1

0

原来我将一个合成属性命名为“release”,并且无意中覆盖了对象的 release 方法。哎呀!

于 2012-05-08T17:36:30.910 回答