Re: iphone large image downloading
Re: iphone large image downloading
- Subject: Re: iphone large image downloading
- From: Shazron Abdullah <email@hidden>
- Date: Thu, 19 Aug 2010 11:14:14 -0700
Write the image data to disk as it comes in instead of putting in a NSData, so that you don't need to put it all in memory.
Use NSFileHandle:writeData.
On 2010-08-19, at 5:48 AM, SanthoshKumarGundu wrote:
> 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
_______________________________________________
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