我在我的解析器中:
+(NSArray *)parseMethode:(NSData *)xmlData {
...
return [myNSArray autorelease];
}
在另一个控制器中我已经这样做了:
@synthesize anOtherNSMutableArray;
- (void)requestFinished:(ASIHTTPRequest *)request
{
NSData *responseData = [self.currentRequest responseData];
self.anOtherNSArray = [MyClassParsers parseMethode:reponseData];
...
}
当我午餐时,它会检测到我的漏水:
self.anOtherNSArray = [MyClassParsers parseMethode:reponseData];
我的代码是否有漏洞?
感谢您的回答
答案 0 :(得分:1)
尝试使用以下
self.anOtherNSArray = nil ;
self.anOtherNSArray = [MyClassParsers parseMethode:reponseData];
答案 1 :(得分:0)
试试这个
NSData *responseData = [self.currentRequest responseData] autorelease];
答案 2 :(得分:0)
我猜你已经为anOtherNSArray定义了这种属性:
@property (...,retain) NSArray *anOtherNSArray;
retain属性意味着使用访问者将自动保留值! 使用访问者:
self.anOtherNSArray = something;
将不使用访问者但保留值:
anOtherNSArray = [someting retain];
你应该:
最后一个选项是更容易和最安全的选择(按照Jhaliya所说的“self.anOtherNSArray = nil;”将释放实例并将其设置为nil)!
阅读可能有助于您更多地了解属性:http://cocoacast.com/?q=node/103