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是个问题,但我不知道这到底意味着什么,所以我将附加堆栈跟踪。
任何帮助都将不胜感激!!谢谢 你找到解决办法了吗?