此问题的代码太长,无法使用。但我很确定我的问题与发布课程有关。对象发布和分配时机
我有一个帮助器类ConnectionHelper.h/.m,它为我处理NSURLConnection。基本上,我给它我想要的URL,并返回数据(它也恰好对它做了一个快速的json解析)。它有一个委托给我的调用类(在这种情况下:DownloadViewController)。完成下载后,它会调用[delegate didFinishParseOf:objectName withDictionary:dictionary];
。然后在DownloadViewController中释放ConnectionHelper并分配一个新的以下载下一个对象。
我的问题是,我这样做了一次,然后它创建第二个连接,然后我的程序只是崩溃。
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyNever];
NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
然后,我不认为任何下列方法被称为:这个电话后
- (NSCachedURLResponse *)connection:(NSURLConnection *)connection
willCacheResponse:(NSCachedURLResponse *)cachedResponse
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge
所以我是对的,我不是释放的东西吗?当我第一次释放它时,dealloc函数没有被调用。我有办法“强制”它释放吗?我需要强制它吗?我认为这不重要,因为我为新的呼叫分配了一个新的ConnectionHelper。他们还会如何重叠/相互冲突?
谢谢。
我一次又一次地检查了我正在分配和释放的内容,我没有看到任何问题。我也看过retainCount,但我不明白是什么让它上下。当它成为另一个班级的代表时,它会上升吗? (如果是这样,我如何让授权课程发布它?) – RyanJM 2010-06-11 20:22:57
我花了一段时间来追踪我的错误。最后,这是一个内存分配错误,但不是我直接使用的文件。在另一个类中,我有一个for循环,其中我使用了快速迭代,并为(MyObject * tempObj in myArray)做了一个循环,我试图在循环结束时释放该对象。随着规则的执行,我没有分配它,所以我不应该释放它。谢谢你的帮助。 – RyanJM 2010-06-14 15:52:31