该应用程序是一项调查,用户在不同的ViewControllers上回答一系列问题,并相应地更改一个变量,在应用程序结束时显示最终数字。
代码非常基本,它在模拟器上运行顺畅,但由于内存警告而在我的iPhone上进行测试时崩溃。
使用大量内存有三个潜在的代码片段。有相当数量的动画图像(总共200个)使用如下:
cloudAnimation.animationImages = [
UIImage(named: "Home Page Cloud Animation 01.png")!,
UIImage(named: "Home Page Cloud Animation 02.png")!,
UIImage(named: "Home Page Cloud Animation 03.png")! ]
cloudAnimation.animationDuration = 6
cloudAnimation.startAnimating()
每个新的ViewController都会向内存中添加大约50-60MB的数据,我认为它可能来自segues。每个屏幕上有2-3个按钮。根据它们单击的内容,变量会发生变化。这是代码:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "yesButton" {
var DestViewController : YesViewController = segue.destinationViewController as! YesViewController
DestViewController.percentChance = 0.02
} else if segue.identifier == "noButton" {
var DestViewController : NoViewController = segue.destinationViewController as! NoViewController
DestViewController.percentChance = percentChance
} else if segue.identifier == "goHome" {
var DestViewController : HomeScreenViewController = segue.destinationViewController as!
HomeScreenViewController
}
}
唯一可能弄乱内存的另一件事就是每个视图都拥有" percentChance"变量,它被改变并从一个传递到另一个。
这些示例中的任何一个看起来都可能使用大量内存吗?完成ViewControllers或动画后,如何停用或取消初始化它们?非常感谢任何帮助。