您好我正在开发一个应用程序,其中我需要处理50个图像(所有图像的大小为2.5 MB),它正在追逐图像,但由于哪个应用程序崩溃,Apple Watch App中的内存增加了10 MB。
Xcode在xCode中给出错误“来自调试器的消息:由于内存错误而终止”
我正在使用的代码如下:
for (var i : Int = 1; i<26; i++) {
let filenameHuman = NSString(format: "human_%d", i )
let filenameZombie = NSString(format: "zombie_%d", i )
var imageHuman : UIImage! = UIImage(named: filenameHuman as String)
var imageZombie : UIImage! = UIImage(named: filenameZombie as String)
WKInterfaceDevice.currentDevice().addCachedImage(imageZombie, name: filenameZombie as String)
WKInterfaceDevice.currentDevice().addCachedImage(imageHuman, name: filenameHuman as String)
}
NSLog("Currently cached images: %@",WKInterfaceDevice.currentDevice().cachedImages)
内存分配和内存泄漏的屏幕截图是:
请帮助,提前致谢。
答案 0 :(得分:1)
我认为你的问题不是漏洞,我认为你的问题是过度保留的分配。因此,使用分配工具(具有保留计数跟踪)来查看分配了多少内存(VM分配)以及有多少实体保留此类内存(保留计数)。
答案 1 :(得分:0)
在循环内部尝试自动释放图像使用的内存,因为您不希望等待自动释放在方法返回后发生。
for (var i : Int = 1; i<26; i++) {
autoreleasepool {
/* code to cache images */
}
}