• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: NSURLConnection failing [SOLVED]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: NSURLConnection failing [SOLVED]


  • Subject: Re: NSURLConnection failing [SOLVED]
  • From: "Doug Penny" <email@hidden>
  • Date: Mon, 25 Feb 2008 11:18:18 -0500

On Thu, Feb 21, 2008 at 9:23 PM, Doug Penny <email@hidden> wrote:
> I am trying to use NSURLConnection to fetch a few small images (like
>  10k) from various websites.  The connections are established and then
>  the connection:willSendRequest:redirectResponse: delegate method is
>  called and it freezes.  It never times out that I know of, at least
>  the connection:didFailWithError: delegate is never called.  So now for
>  the crazy part... sometimes the code works fine and all of the images
>  are retrieved.  I have tested this with several different sites and it
>  seems to be fairly random.  I have tried different caching policies as
>  well with no change.  If it fails, it always seems to fail after the
>  redirect is received.  I am running this on Leopard with GC enabled.
>  Below is the code I am using, I removed all the log messages I was
>  using for debugging.  If anyone has any ideas they would be greatly
>  appreciated.
>
>
>  NSURLRequest *request=[NSURLRequest requestWithURL:[NSURL
>  URLWithString:imageURL]
>
>  cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
>
>  timeoutInterval:30.0];
>
>  NSURLConnection *imageConnection = [[NSURLConnection alloc]
>  initWithRequest:request
>
>                                      delegate:self];
>
>  if (!imageConnection) {
>     NSLog(@"A problem was encountered while trying to download an
>  image from %@", imageURL);
>  }
>
>
>  ----------------delegate methods-----------------
>
>  - (void)connection:(NSURLConnection *)connection
>  didReceiveResponse:(NSURLResponse *)response
>  {
>     [receivedData setLength:0];
>  }
>
>  - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
>  {
>     [receivedData appendData:data];
>  }
>
>  - (NSURLRequest *)connection:(NSURLConnection *)connection
>                      willSendRequest:(NSURLRequest *)request
>                     redirectResponse:(NSURLResponse *)redirectResponse
>  {
>     return request;
>  }
>
>  - (void)connection:(NSURLConnection *)connection
>  didFailWithError:(NSError *)error
>  {
>     NSLog(@"Error: %@", [error localizedDescription]);
>  }
>
>  - (void)connectionDidFinishLoading:(NSURLConnection *)connection
>  {
>     image = [[NSImage alloc] initWithData:receivedData];
>     if (!image || ![image isValid]) {
>         image = [NSImage imageNamed:@"missingImage.tiff"];
>     }
>  }
>
>
>
>  -Doug
>

Turns out garbage collection was doing me in.  When the
NSURLConnection object was hanging out waiting for a response, it
would get collected.  To work around this, after creating the
NSURLConnection object I just stick it in a NSMutableSet.  When the
delegate gets the -connectionDidFinishLoading: message I remove the
connection object from the set.  Works great now.

Doug
_______________________________________________

Cocoa-dev mailing list (email@hidden)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden

  • Follow-Ups:
    • Re: NSURLConnection failing [SOLVED]
      • From: Nir Soffer <email@hidden>
    • Re: NSURLConnection failing [SOLVED]
      • From: Jerry Krinock <email@hidden>
  • Prev by Date: Converting from Window to View Coordinates
  • Next by Date: Re: disowning a bundle?
  • Previous by thread: Re: Converting from Window to View Coordinates
  • Next by thread: Re: NSURLConnection failing [SOLVED]
  • Index(es):
    • Date
    • Thread