Xcode 4 warning "Expression result unused” for NSURLConnection

IphoneObjective CIosXcodeWarnings

Iphone Problem Overview


I'm just trying to do my usual data transfert. I define my NSMutableURLRequest then call

[[NSURLConnection alloc] initWithRequest:request delegate:self];

This used to be ok with Xcode 3 but Xcode 4 warns me about "Expression result unused" on that line. The request does work but I would like to find a way to get rid of the warning.

I suppose I could store the connection in a variable but I don't really need it and I can't see the point of setting it to nil the next line (although this would remove the warning)

Please note: I'm not 100% sure if it's Xcode 4 or the fact ARC is enabled.

Iphone Solutions


Solution 1 - Iphone

When a function returns a result that you don't need you can cast it to void to eliminate the compiler warning:

(void) [[NSURLConnection alloc] initWithRequest:request delegate:self];

I haven't used ARC yet so I can't say if this is a good idea, before ARC you would need to keep this pointer result somewhere so you could release it.

Solution 2 - Iphone

progrmr's answer is correct, but here's an even cleaner way to do it:

[NSURLConnection connectionWithRequest:request delegate:self];

This doesn't cause a warning, even if you don't cast the result to void.

Solution 3 - Iphone

Someone should be responsible for that NSURLConnection. It is not needed to store the connection but it is better coding if you do. The problem is that after you created our NSURLConnection no one has a pointer to that created instance which should not be the case.

Let's assume the following example:

  1. your instance of ClassA is creating an instane of NSURLConnection
  2. your instance of ClassA is beeing released and dealloced
  3. NSURLConnection is still alive and will fire the delegate to your deallocated instance.

To solve that problem you should store the instance of NSURLConnection and should release that connection if your instance of ClassA is being dealloced which results in deallocating the instance of NSURLConnection as well.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionJohannView Question on Stackoverflow
Solution 1 - IphoneprogrmrView Answer on Stackoverflow
Solution 2 - IphoneElliotView Answer on Stackoverflow
Solution 3 - IphonethomasView Answer on Stackoverflow