Re: iphone large image downloading
Re: iphone large image downloading
- Subject: Re: iphone large image downloading
- From: SanthoshKumarGundu <email@hidden>
- Date: Thu, 19 Aug 2010 18:18:37 +0530
Hi all,
I have modified my code to send asynchronous request using the below
NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:
[NSURLRequest requestWithURL:
[NSURL URLWithString:strURL]] delegate:self];
- (void)connection:(NSURLConnection *)connection didReceiveData:
(NSData *)data
{
[self.activeDownload appendData:data];
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
// Set appIcon and clear temporary data/image
UIImage *image = [[UIImage alloc]
initWithData:self.activeDownload];
if (image != nil)
{
self.appRecord.appIcon = image;
}
else
{
self.appRecord.appIcon = [UIImage
imageNamed:@"image_not_available.png"];
}
[image release];
// Release the connection now that it's finished
self.imageConnection = nil;
// call our delegate and tell it that our icon is ready for display
[delegate appImageDidLoad:self.indexPathInTableView];
[delegate appSingleImageDidLoad:rowNumber];
self.activeDownload = nil;
// show in the status bar that network activity is starting
[UIApplication sharedApplication].networkActivityIndicatorVisible
= NO;
}
In simulator I am able to run the application without any crashes.
But in device it is taking long time to download the first image, and
from second image the application is getting crashed.
I have seen crash reports , and it is of type "low memory".
Can any one suggest me how to handle this situation?
Also, I have overridden "didReceiveMemoryWarning" and added an
alertview, it is not getting called.
Thanks in advance.
Thanks,
Santhosh Kumar Gundu
On Aug 12, 2010, at 2:19 AM, David Duncan wrote:
On Aug 11, 2010, at 12:46 AM, SanthoshKumarGundu wrote:
Can any one have an idea of what is the maximum image limit(size
and resolution) in iphone?.
There are some images in web server. In my application , I am
getting these as NSData (one image at a time) and displaying the
image using the following code
NSData *imageData = [[NSData alloc]initWithContentsOfURL:[NSURL
URLWithString:imageURLString]];
UIImage *sampleImage = [UIImage imageWithData:imageData];
This is working fine for small images ( upto 1MB of size and
resolution of 1024*1024).
But for large images ( 3MB size and resolution of 2500*2500), the
application is getting crashed.
What kind of crash are you getting? I would bet that the exception
code is 0x8badf00d (see TN2151 for information on what that means
and how to read crash reports).
You are actually pretty lucky that the first version works at all,
and I bet that if you are on a slow or broken network that it won't
work and you will get a similar crash.
Generally any using -initWithContentsOfURL: for remote URLs will
fail if you are trying to do so on the main thread (and if you are
using UIKit, you are probably trying to do so on the main thread,
like the above code).
The correct solution here is to use asynchronous networking to
download the data and once you finish the download you can create a
UIImage from the gathered data. Using synchronous networking (like
you are above) is generally discouraged.
--
David Duncan
_______________________________________________
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