I try to combine two UIImage with the following code:
- (void)combineImage:(UIImage *)image WithFrame:(CGRect)frame Completion:(ImageProcessorCompletionBlock)block {
    __weak typeof(self) wSelf = self;
    dispatch_async(_queue, ^{
        if (wSelf) {
            typeof(wSelf) sSelf = wSelf;
            UIGraphicsBeginImageContextWithOptions(sSelf.originalImage.size, NO, 0.0);
            [sSelf.originalImage drawInRect:CGRectMake(0, 0, sSelf.originalImage.size.width, sSelf.originalImage.size.height)];
            [image drawInRect:frame];
            UIImage *result = UIGraphicsGetImageFromCurrentImageContext();
            UIGraphicsEndImageContext();
            dispatch_async(dispatch_get_main_queue(), ^{
                if (block) {
                    block(result);
                }
            });
        }
    });
}
That works but when I check out the usage of memory, it scared me. Every time I run the method the memory rise up and never release. Sometimes I receive the memory warning. Can anyone tell me why and give me a solution to solve the problem? Thanks a lot!