Swift Code
==========

When we get a screenshot of a UIView, we use this code usually:

```
UIGraphicsBeginImageContextWithOptions(frame.size, false, scale)
drawViewHierarchyInRect(bounds, afterScreenUpdates: true)
var image:UIImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()

```

Problem
=======

`drawViewHierarchyInRect` && `UIGraphicsGetImageFromCurrentImageContext` will generate an image in current Context,but Memory will **not** released when when called `UIGraphicsEndImageContext`.

Memory using continues to increase until the app crashes.

Although there is a word `UIGraphicsEndImageContext` will call `CGContextRelease` automatically",it doesn't work.

How can I release the memory `drawViewHierarchyInRect` or `UIGraphicsGetImageFromCurrentImageContext` used

Or?
===

Is there anyway generating screenshot without `drawViewHierarchyInRect`?

Already tried
=============

> 
> 1 Auto release : not work
> 
> 
> 

```
var image:UIImage?
autoreleasepool{
    UIGraphicsBeginImageContextWithOptions(frame.size, false, scale)
    drawViewHierarchyInRect(bounds, afterScreenUpdates: true)
    image = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()
}
image = nil

```

> 
> 2 UnsafeMutablePointer : not work
> 
> 
> 

```
var image:UnsafeMutablePointer<UIImage> = UnsafeMutablePointer.alloc(1)

autoreleasepool{
   UIGraphicsBeginImageContextWithOptions(frame.size, false, scale)
   drawViewHierarchyInRect(bounds, afterScreenUpdates: true)
   image.initialize(UIGraphicsGetImageFromCurrentImageContext())
   UIGraphicsEndImageContext()
}
image.destroy()
image.delloc(1)

```