There is a workaround if you use the fullScreenImage property, it should be slower for execution but it should work fine.
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void) {
ALAsset *asset = [_assets objectAtIndex:allItems - idx];
UIImage *smallImage = [UIImage imageWithCGImage:[asset thumbnail]];
UIImage *image;
CGSize size = [smallImage size];
CGRect box = CGRectMake(0, 0, size.width, size.height);
UIGraphicsBeginImageContext(size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [[UIColor clearColor] CGColor]);
CGContextFillRect(context, box);
CGContextTranslateCTM(context, 0.0, size.height);
CGContextScaleCTM(context, 1.0, -1.0);
CGContextDrawImage(context, box, [[asset defaultRepresentation] fullScreenImage]);
image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
dispatch_async(dispatch_get_main_queue(), ^{
TTGridView *gridView = (TTGridView *)obj;
gridView.imageView.image = image;
});
});