我的代码显示出奇怪的行为,而且我已经搜索了几个小时而没有运气。
我的代码段:
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)
如您所见,我将图像保存到本地文件夹,当我需要它时,我从本地文件夹的加载图像加载它并将其转换为NSData与UIImagePNGRepresentation
奇怪的是,对于某些图像,它按预期工作。但是,对于某些图像,内存不会被解除分配。 (检查分配工具。堆继续上升)
看到点意味着第一个还活着? 我查看了历史记录,一旦进展顺利,就应该像
一样对于有问题的图像,就像这样
两个分配,一个dealloc ..我猜这是问题,但我不知道为什么它只发生在特定的图像上。 当我检查堆栈跟踪时,我想这意味着UIImagePNGRepresentation是问题,但我不知道这意味着什么,所以我将附加堆栈跟踪。
任何帮助将不胜感激!谢谢!