Objective C code to handle large amount of data processing in iPhone

Posted by user167662 on Stack Overflow See other posts from Stack Overflow or by user167662
Published on 2010-06-17T04:04:49Z Indexed on 2010/06/17 4:13 UTC
Read the original article Hit count: 259

Filed under:
|

I had the following code that takes in 14 mb or more of image data encoded in base4 string and converts them to jpeg before writing to a file in iphone. It crashes my program giving the following error : Program received signal: “0”. warning: check_safe_call: could not restore current frame

I tweak my program and it can process a few more images before the error appear again. My coding is as follows:

// parameters is an array where the fourth element contains a list of images in base64 >encoded string 

NSMutableArray *imageStrList = (NSMutableArray*) [parameters objectAtIndex:5]; 
while (imageStrList.count != 0) {   
    NSString *imgString = [imageStrList objectAtIndex:0];  
    // Create a file name using my own Utility class
    NSString *fileName = [Utility generateFileNName];
    NSData *restoredImg = [NSData decodeWebSafeBase64ForString:imgString];
    UIImage *img = [UIImage imageWithData: restoredImg];
    NSData *imgJPEG = UIImageJPEGRepresentation(img, 0.4f); 
   [imgJPEG writeToFile:fileName atomically:YES];
   [imageStrList removeObjectAtIndex:0];
}

I tried playing around with UIImageJPEGRepresentation and found out that the lower the value, the more image it can processed but this should not be the way. I am wondering if there is anyway to free up memory of the imageStrList immediately after processing each image so that it can be used by the next one in the line.

© Stack Overflow or respective owner

Related posts about iphone

Related posts about xcode