我已经在我的项目的许多地方使用这行代码在各种功能下:
NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest: theRequest delegate:self];
现在我收到通常的警告“未使用的变量theConnection”。 我也知道它的泄漏记忆。
可以使用以下代码吗?
NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest: theRequest delegate:self];
[theConnection release];
如果我释放了theConnection对象,那么在诸如didReceiveData,connectionDidFinishLoading等委托方法中会出现问题吗?
如果上面的语句可以解决内存泄漏而没有问题如何摆脱警告“未使用的变量等等等等?”
答案 0 :(得分:1)
Now I'm getting an usual warning "Unused variable theConnection". I also know that its leaking memory.
因为您没有使用theConnection
对象
如果您不希望为此实例调用delgate函数,请将delegate
设置为nil
而不是self
[[NSURLConnection alloc] initWithRequest:request delegate:nil];
<强>编辑:强>
在.h课程中
NSURLConnection* m_URLConnection;
在.m级:
-(id) init
{
m_URLConnection = [[NSURLConnection alloc] initWithRequest:request delegate:nil];
}
-(void) dealloc
{
[m_URLConnection release];
m_URLConnection = nil ;
}
答案 1 :(得分:0)
我认为你可以使用这个
[[NSURLConnection alloc] initWithRequest:request delegate:self];
我认为这不会显示警告
或者我认为你也可以尝试将连接对象作为类的实例变量。
theConnection = [[NSURLConnection alloc] initWithRequest: theRequest delegate:self];
您可以根据theConnection
中的代码或其他方法,通过发布dealloc
来避免泄露