UI Gets Blocked When Using CGImageSourceCreateWithURL and CGImageSourceCopyPropertiesAtIndex <p>I am checking the dimensions of images via their URLs stored in an array called destination_urls. I then calculate the height of images if they were stretched to the width of the screen while maintaining the aspect ratio. All of this is done in a for loop.</p> <p>When the code is run, the app UI gets stuck during the for loop. How can I revise the code to make sure the app doesn't freeze?</p> <pre><code>int t = 0; int arraycount = [_destination_urls count]; dispatch_async(dispatch_get_main_queue(), ^{ for (int i = 0; i &lt; arraycount; i++) { NSURL *imageURL = [NSURL URLWithString:[_destination_urls[i] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; CGImageSourceRef imgSource = CGImageSourceCreateWithURL((__bridge CFURLRef)imageURL, NULL); NSDictionary* imageProps = (__bridge_transfer NSDictionary*) CGImageSourceCopyPropertiesAtIndex(imgSource, 0, NULL); NSString *imageHeighttoDisplay = [imageProps objectForKey:@"PixelHeight"]; originalimageHeight = [imageHeighttoDisplay intValue]; NSString *imageWidthtoDisplay = [imageProps objectForKey:@"PixelWidth"]; originalimageWidth = [imageWidthtoDisplay intValue]; if (imgSource){ _revisedImageURLHeight[t] = [NSNumber numberWithInt:(screenWidth)*(originalimageHeight/originalimageWidth)]; t = t +1; CFRelease(imgSource); } } }); </code></pre>