Ios UIImagePgrePresentation有时会导致内存泄漏

Ios UIImagePgrePresentation有时会导致内存泄漏,ios,swift,memory-leaks,uiimagepngrepresentation,vmalloc,Ios,Swift,Memory Leaks,Uiimagepngrepresentation,Vmalloc,我的代码显示出奇怪的行为,而且我已经搜索了好几个小时而没有运气 我的代码片段: func loadImageFromLocal(index:String)->UIImage{ var fileManager = NSFileManager.defaultManager() var containerURL = fileManager.containerURLForSecurityApplicationGroupIdentifier("group.mygrou

我的代码显示出奇怪的行为,而且我已经搜索了好几个小时而没有运气

我的代码片段:

func loadImageFromLocal(index:String)->UIImage{
        var fileManager = NSFileManager.defaultManager()
        var containerURL = fileManager.containerURLForSecurityApplicationGroupIdentifier("group.mygroup.test")
        var pngNumber=sharedDefaults.objectForKey("png\(index)") as Int
        var filePath = containerURL!.path!+"/img\(pngNumber).png"

        NSLog(filePath)

        var image:UIImage = UIImage(contentsOfFile: filePath)!
        return image
}

...

var image:UIImage?=loadImageFromLocal(button.titleForState(.Normal)!)
var pngImage = UIImagePNGRepresentation(image)
如您所见,我将图像保存到本地文件夹,需要时,从本地文件夹加载图像,并使用UIImagePngResentation将其转换为NSData

奇怪的是,对于某些图像,它的工作原理和我预期的一样。但是,对于某些映像,内存不会释放。(通过分配工具检查,堆一直在上升)

看到圆点了吗,意思是第一个还活着? 我检查了历史记录,如果进展顺利,应该是这样

对于有问题的图像,它是这样的

两个alloc,一个dealloc..我想这就是问题所在,但我不知道为什么它只发生在特定的图像上。 当我检查堆栈跟踪时,我想这意味着UIImagePNGRepresentation是个问题,但我不知道这到底意味着什么,所以我将附加堆栈跟踪。


任何帮助都将不胜感激!!谢谢

你找到解决办法了吗?